gem5
v22.1.0.0
|
Reference material can be found at the JEDEC website: UFS standard http://www.jedec.org/standards-documents/results/jesd220 UFS HCI specification http://www.jedec.org/standards-documents/results/jesd223. More...
Namespaces | |
AMBA | |
ArmISA | |
ArmISAInst | |
auxv | |
bitfield_backend | |
bloom_filter | |
branch_prediction | |
compression | |
context_switch_task_id | |
copy_engine_reg | |
cp | |
debug | |
decode_cache | |
fastmodel | |
free_bsd | |
Gcn3ISA | |
classes that represnt vector/scalar operands in GCN3 ISA. | |
Gem5Internal | |
GenericISA | |
guest_abi | |
igbreg | |
Iris | |
linux | |
loader | |
memory | |
minor | |
MipsISA | |
networking | |
NullISA | |
o3 | |
PowerISA | |
prefetch | |
probing | |
ps2 | |
pseudo_inst | |
QARMA | |
qemu | |
replacement_policy | |
RiscvISA | |
ruby | |
scmi | |
sim_clock | |
sinic | |
SparcISA | |
statistics | |
stl_helpers | |
trace | |
VegaISA | |
classes that represnt vector/scalar operands in VEGA ISA. | |
X86ISA | |
This is exposed globally, independent of the ISA. | |
X86ISAInst | |
Classes | |
struct | GpuTranslationState |
GPU TranslationState: this currently is a somewhat bastardization of the usage of SenderState, whereby the receiver of a packet is not usually supposed to need to look at the contents of the senderState, you're really only supposed to look at what you pushed on, pop it off, and send it back. More... | |
class | TLBCoalescer |
The TLBCoalescer is a ClockedObject sitting on the front side (CPUSide) of each TLB. More... | |
class | VegaTLBCoalescer |
The VegaTLBCoalescer is a ClockedObject sitting on the front side (CPUSide) of each TLB. More... | |
struct | Aapcs32 |
struct | Aapcs32Vfp |
struct | Aapcs64 |
struct | ClockRateControlDummyProtocolType |
class | ClockRateControlFwIf |
class | ClockRateControlBwIf |
class | ClockRateControlSlaveBase |
class | ClockRateControlInitiatorSocket |
class | ClockRateControlTargetSocket |
struct | SignalInterruptDummyProtocolType |
class | SignalInterruptFwIf |
class | SignalInterruptBwIf |
class | SignalInterruptSlaveBase |
class | SignalInterruptInitiatorSocket |
class | SignalInterruptTargetSocket |
class | ArmFreebsd |
class | ArmFreebsd32 |
class | ArmFreebsd64 |
class | MrsOp |
class | MsrBase |
class | MsrImmOp |
class | MsrRegOp |
class | MrrcOp |
class | McrrOp |
class | ImmOp |
class | RegImmOp |
class | RegRegOp |
class | RegOp |
class | RegImmRegOp |
class | RegRegRegImmOp |
class | RegRegRegRegOp |
class | RegRegRegOp |
class | RegRegImmOp |
class | MiscRegRegImmOp |
class | RegMiscRegImmOp |
class | RegImmImmOp |
class | RegRegImmImmOp |
class | RegImmRegShiftOp |
class | UnknownOp |
class | McrMrcMiscInst |
Certain mrc/mcr instructions act as nops or flush the pipe based on what register the instruction is trying to access. More... | |
class | McrMrcImplDefined |
This class is also used for IMPLEMENTATION DEFINED registers, whose mcr/mrc behaviour is trappable even for unimplemented registers. More... | |
class | TlbiOp |
class | ImmOp64 |
class | RegRegImmImmOp64 |
class | RegRegRegImmOp64 |
class | UnknownOp64 |
class | MiscRegOp64 |
This class is implementing the Base class for a generic AArch64 instruction which is making use of system registers (MiscReg), like MSR,MRS,SYS. More... | |
class | MiscRegImmOp64 |
class | MiscRegRegImmOp64 |
class | RegMiscRegImmOp64 |
class | MiscRegImplDefined64 |
class | RegNone |
class | TlbiOp64 |
class | DecoderFaultInst |
class | FailUnimplemented |
Static instruction class for unimplemented instructions that cause simulator termination. More... | |
class | WarnUnimplemented |
Base class for unimplemented instructions that cause a warning to be printed (but do not terminate simulation). More... | |
class | IllegalExecInst |
This class is modelling instructions which are not going to be executed since they are flagged as Illegal Execution Instructions (PSTATE.IL = 1 or CPSR.IL = 1). More... | |
class | DebugStep |
class | ArmKvmCPU |
ARM implementation of a KVM-based hardware virtualized CPU. More... | |
union | KvmFPReg |
class | ArmV8KvmCPU |
This is an implementation of a KVM-based ARMv8-compatible CPU. More... | |
class | BaseArmKvmCPU |
class | KvmKernelGic |
KVM in-kernel GIC abstraction. More... | |
class | KvmKernelGicV2 |
class | KvmKernelGicV3 |
struct | GicV2Types |
struct | GicV3Types |
class | MuxingKvmGic |
class | AtagHeader |
class | AtagCore |
class | AtagMem |
class | AtagRev |
class | AtagSerial |
class | AtagCmdline |
class | AtagNone |
class | ArmLinux |
class | ArmLinux32 |
class | ArmLinux64 |
class | ArmLinuxProcess32 |
A process with emulated Arm/Linux syscalls. More... | |
class | ArmLinuxProcess64 |
A process with emulated Arm/Linux syscalls. More... | |
class | ArmProcess |
class | ArmProcess32 |
class | ArmProcess64 |
struct | SemiPseudoAbi32 |
struct | SemiPseudoAbi64 |
class | ArmSemihosting |
Semihosting for AArch32 and AArch64. More... | |
class | ArmRelease |
class | ArmSystem |
class | InstDecoder |
class | BaseHTMCheckpoint |
Transactional Memory checkpoint. More... | |
class | BaseInterrupts |
class | BaseISA |
class | BaseMMU |
class | PCStateBase |
class | BaseTLB |
class | VecPredRegContainer |
Generic predicate register container. More... | |
class | VecPredRegT |
Predicate register view. More... | |
struct | ParseParam< VecPredRegContainer< NumBits, Packed > > |
struct | ShowParam< VecPredRegContainer< NumBits, Packed > > |
struct | DummyVecPredRegContainer |
Dummy type aliases and constants for architectures that do not implement vector predicate registers. More... | |
struct | ParseParam< DummyVecPredRegContainer > |
class | VecRegContainer |
Vector Register Abstraction This generic class is the model in a particularization of MVC, to vector registers. More... | |
struct | ParseParam< VecRegContainer< Sz > > |
Calls required for serialization/deserialization. More... | |
struct | ShowParam< VecRegContainer< Sz > > |
struct | DummyVecRegContainer |
Dummy type aliases and constants for architectures that do not implement vector registers. More... | |
struct | ParseParam< DummyVecRegContainer > |
class | IdleStartEvent |
class | MipsLinux |
class | MipsProcess |
class | BaseRemoteGDB |
class | PowerLinux |
class | PowerProcess |
class | RiscvLinux |
class | RiscvLinux64 |
class | RiscvLinux32 |
class | PMAChecker |
Based on the RISC-V ISA privileged specifications V1.11, there is no implementation guidelines on the Physical Memory Attributes. More... | |
class | PMP |
This class helps to implement RISCV's physical memory protection (pmp) primitive. More... | |
class | RiscvProcess |
class | RiscvProcess64 |
class | RiscvProcess32 |
class | SparcLinux |
class | Sparc32Linux |
class | SparcProcess |
class | Sparc32Process |
class | Sparc64Process |
struct | SparcPseudoInstABI |
class | SparcSolaris |
struct | FXSave |
class | X86KvmCPU |
x86 implementation of a KVM-based hardware virtualized CPU. More... | |
class | X86Linux |
class | X86Linux64 |
class | X86Linux32 |
struct | X86PseudoInstABI |
class | AddrRange |
The AddrRange class encapsulates an address range, and supports a number of tests to check if two ranges intersect, if a range contains a specific address etc. More... | |
class | AddrRangeMap |
The AddrRangeMap uses an STL map to implement an interval tree for address decoding. More... | |
struct | AtomicOpFunctor |
struct | TypedAtomicOpFunctor |
class | AtomicGeneric2Op |
class | AtomicGeneric3Op |
class | AtomicGenericPair3Op |
class | AtomicOpAnd |
class | AtomicOpOr |
class | AtomicOpXor |
class | AtomicOpExch |
class | AtomicOpAdd |
class | AtomicOpSub |
class | AtomicOpInc |
class | AtomicOpDec |
class | AtomicOpMax |
class | AtomicOpMin |
class | Barrier |
class | BitfieldTypeImpl |
class | BitfieldType |
class | BitfieldROType |
class | BitfieldWOType |
struct | ParseParam< BitUnionType< T > > |
struct | ShowParam< BitUnionType< T > > |
class | BmpWriter |
class | CallbackQueue |
class | ChannelAddr |
Class holding a guest address in a contiguous channel-local address space. More... | |
class | ChannelAddrRange |
The ChanneelAddrRange class describes a contiguous range of addresses in a contiguous channel-local address space. More... | |
class | ChunkGenerator |
This class takes an arbitrary memory region (address/length pair) and generates a series of appropriately (e.g. More... | |
class | CircleBuf |
Circular buffer backed by a vector. More... | |
class | Fifo |
Simple FIFO implementation backed by a circular buffer. More... | |
class | CircularQueue |
Circular queue. More... | |
class | Coroutine |
This template defines a Coroutine wrapper type with a Boost-like interface. More... | |
class | Fiber |
This class represents a fiber, which is a light weight sort of thread which is cooperatively scheduled and runs sequentially with other fibers, swapping in and out of a single actual thread of execution. More... | |
class | Flags |
Wrapper that groups a few flag bits under the same undelying container. More... | |
class | FrameBuffer |
Internal gem5 representation of a frame buffer. More... | |
class | GTestTickHandler |
class | GTestLogOutput |
class | SerializationFixture |
Fixture class that handles temporary directory creation. More... | |
class | ImgWriter |
class | IniFile |
This class represents the contents of a ".ini" file. More... | |
class | Logger |
class | ObjectMatch |
ObjectMatch contains a vector of expressions. More... | |
class | Memoizer |
This class takes a function as a constructor argument and memoizes it: every time the function gets invoked through the Memoizer object (see operator()), the result gets saved in the internal cache, ready to be retrieved next time an invokation is made with the same arguments. More... | |
class | Named |
Interface for things with names. More... | |
class | OutputStream |
class | OutputFile |
class | OutputDirectory |
Interface for creating files in a gem5 output directory. More... | |
struct | Pixel |
Internal gem5 representation of a Pixel. More... | |
class | PixelConverter |
Configurable RGB pixel converter. More... | |
class | PngWriter |
Image writer implementing support for PNG. More... | |
class | PollEvent |
class | PollQueue |
class | Printable |
Abstract base class for objects which support being printed to a stream for debugging. More... | |
class | Random |
class | RefCounted |
Derive from RefCounted if you want to enable reference counting of this class. More... | |
class | RefCountingPtr |
If you want a reference counting pointer to a mutable object, create it like this: More... | |
class | HardBreakpoint |
class | BaseGdbRegCache |
Concrete subclasses of this abstract class represent how the register values are transmitted on the wire. More... | |
class | GenericSatCounter |
Implements an n bit saturating counter and provides methods to increment, decrement, and read it. More... | |
class | ListenSocket |
class | Temperature |
The class stores temperatures in Kelvin and provides helper methods to convert to/from Celsius. More... | |
class | Time |
struct | StringWrap |
class | Trie |
A trie is a tree-based data structure used for data retrieval. More... | |
class | Cycles |
Cycles is a wrapper class for representing cycle counts, i.e. More... | |
class | UncontendedMutex |
class | VncKeyboard |
A device that expects to receive input from the vnc server should derrive (through mulitple inheritence if necessary from VncKeyboard or VncMouse and call setKeyboard() or setMouse() respectively on the vnc server. More... | |
class | VncMouse |
class | VncInput |
class | VncServer |
class | ActivityRecorder |
ActivityRecorder helper class that informs the CPU if it can switch over to being idle or not. More... | |
struct | AddressMonitor |
class | CPUProgressEvent |
class | BaseCPU |
class | CheckerCPU |
CheckerCPU class. More... | |
class | Checker |
Templated Checker class. More... | |
class | CheckerThreadContext |
Derived ThreadContext class for use with the Checker. More... | |
class | DummyChecker |
Specific non-templated derived class used for SimObject configuration. More... | |
class | ExecContext |
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate the state of the CPU model. More... | |
class | OpDesc |
class | FUDesc |
class | FuncUnit |
class | InstResult |
class | BaseKvmCPU |
Base class for KVM based CPU models. More... | |
class | KvmDevice |
KVM device wrapper. More... | |
class | PerfKvmCounterConfig |
PerfEvent counter configuration. More... | |
class | PerfKvmCounter |
An instance of a performance counter. More... | |
class | BaseKvmTimer |
Timer functions to interrupt VM execution after a number of simulation ticks. More... | |
class | PosixKvmTimer |
Timer based on standard POSIX timers. More... | |
class | PerfKvmTimer |
PerfEvent based timer using the host's CPU cycle counter. More... | |
class | Kvm |
KVM parent interface. More... | |
class | KvmVM |
KVM VM container. More... | |
class | MinorCPU |
MinorCPU is an in-order CPU model with four fixed pipeline stages: More... | |
class | MinorOpClass |
Boxing for MinorOpClass to get around a build problem with C++11 but also allow for future additions to op class checking. More... | |
class | MinorOpClassSet |
Wrapper for a matchable set of op classes. More... | |
class | MinorFUTiming |
Extra timing capability to allow individual ops to have their source register dependency latencies tweaked based on the ExtMachInst of the source instruction. More... | |
class | MinorFU |
A functional unit that can execute any of opClasses operations with a single op(eration)Lat(ency) and issueLat(ency) associated with the unit rather than each operation (as in src/FuncUnit). More... | |
class | MinorFUPool |
A collection of MinorFUs. More... | |
struct | SNHash |
class | PCEvent |
class | PCEventScope |
class | PCEventQueue |
class | BreakPCEvent |
class | PanicPCEvent |
class | BaseStackTrace |
class | ProfileNode |
class | FunctionProfile |
class | RegId |
Register ID: describe an architectural register with its class and index. More... | |
class | RegClassOps |
class | RegClass |
class | RegClassIterator |
class | TypedRegClassOps |
class | VecElemRegClassOps |
class | PhysRegId |
Physical register ID. More... | |
class | RegFile |
class | AtomicSimpleCPU |
class | BaseSimpleCPU |
class | SimpleExecContext |
class | NonCachingSimpleCPU |
The NonCachingSimpleCPU is an AtomicSimpleCPU using the 'atomic_noncaching' memory mode instead of just 'atomic'. More... | |
class | SimPoint |
class | TimingSimpleCPU |
class | SimpleThread |
The SimpleThread object provides a combination of the ThreadState object and the ThreadContext interface. More... | |
class | StaticInst |
Base, ISA-independent static instruction class. More... | |
class | DirectedGenerator |
class | InvalidateGenerator |
class | RubyDirectedTester |
class | SeriesRequestGenerator |
class | GarnetSyntheticTraffic |
class | AddressManager |
class | CpuThread |
class | DmaThread |
class | Episode |
class | GpuWavefront |
class | ProtocolTester |
class | TesterDma |
class | TesterThread |
class | MemTest |
The MemTest class tests a cache coherent memory system by generating false sharing and verifying the read data against a reference updated on the completion of writes. More... | |
class | Check |
class | CheckTable |
class | RubyTester |
class | BaseTrafficGen |
The traffic generator is a module that generates stimuli for the memory system, based on a collection of simple generator behaviours that are either probabilistic or based on traces. More... | |
class | BaseGen |
Base class for all generators, with the shared functionality and virtual functions for entering, executing and leaving the generator. More... | |
class | StochasticGen |
class | DramGen |
DRAM specific generator is for issuing request with variable page hit length and bank utilization. More... | |
class | DramRotGen |
class | ExitGen |
The exit generator exits from the simulation once entered. More... | |
class | GUPSGen |
class | HybridGen |
Hybrid NVM + DRAM specific generator is for issuing request with variable buffer hit length and bank utilization. More... | |
class | IdleGen |
The idle generator does nothing. More... | |
class | LinearGen |
The linear generator generates sequential requests from a start to an end address, with a fixed block size. More... | |
class | NvmGen |
NVM specific generator is for issuing request with variable buffer hit length and bank utilization. More... | |
class | PyTrafficGen |
class | RandomGen |
The random generator is similar to the linear one, but does not generate sequential addresses. More... | |
class | StreamGen |
class | FixedStreamGen |
class | RandomStreamGen |
class | StridedGen |
The strided generator generates sequential requests from a start to an end address, with a fixed block size. More... | |
class | TraceGen |
The trace replay generator reads a trace file and plays back the transactions. More... | |
class | TrafficGen |
The traffic generator is a module that generates stimuli for the memory system, based on a collection of simple behaviours that are either probabilistic or based on traces. More... | |
class | ThreadContext |
ThreadContext is the external interface to all thread state for anything outside of the CPU. More... | |
struct | ThreadState |
Struct for holding general thread state that is needed across CPU models. More... | |
class | TimeBuffer |
class | TimingExprEvalContext |
Object to gather the visible context for evaluation. More... | |
class | TimingExpr |
class | TimingExprLiteral |
class | TimingExprSrcReg |
class | TimingExprLet |
class | TimingExprRef |
class | TimingExprUn |
class | TimingExprBin |
class | TimingExprIf |
class | TraceCPU |
The trace cpu replays traces generated using the elastic trace probe attached to the O3 CPU model. More... | |
class | WholeTranslationState |
This class captures the state of an address translation. More... | |
class | DataTranslation |
This class represents part of a data address translation. More... | |
class | AMDGPUDevice |
Device model for an AMD GPU. More... | |
class | AMDGPUVM |
struct | AMDGPUInterruptCookie |
struct | AMDGPUIHRegs |
Struct to contain all interrupt handler related registers. More... | |
class | AMDGPUInterruptHandler |
class | AMDGPUMemoryManager |
class | AMDMMIOReader |
Helper class to read Linux kernel MMIO trace from amdgpu modprobes. More... | |
struct | GEM5_PACKED |
PM4 packets. More... | |
class | PM4PacketProcessor |
struct | PrimaryQueue |
class | PM4Queue |
Class defining a PM4 queue. More... | |
class | SDMAEngine |
System DMA Engine class for AMD dGPU. More... | |
class | AMDGPUSystemHub |
This class handles reads from the system/host memory space from the shader. More... | |
class | A9SCU |
class | AbstractNVM |
This is an interface between the disk interface (which will handle the disk data transactions) and the timing model. More... | |
class | AmbaDevice |
class | AmbaPioDevice |
class | AmbaIntDevice |
class | AmbaDmaDevice |
class | AmbaFake |
class | BaseGic |
class | ArmInterruptPinGen |
This SimObject is instantiated in the python world and serves as an ArmInterruptPin generator. More... | |
class | ArmSPIGen |
Shared Peripheral Interrupt Generator It is capable of generating one interrupt only: it maintains a pointer to it and returns it every time it is asked for it (via the get metod) More... | |
class | ArmPPIGen |
Private Peripheral Interrupt Generator Since PPIs are banked in the GIC, this class is capable of generating more than one interrupt (one per ContextID). More... | |
class | ArmSigInterruptPinGen |
class | ArmInterruptPin |
Generic representation of an Arm interrupt pin. More... | |
class | ArmSPI |
class | ArmPPI |
class | ArmSigInterruptPin |
class | MhuDoorbell |
class | Scp2ApDoorbell |
class | Ap2ScpDoorbell |
class | MHU |
Message Handling Unit. More... | |
class | Scp |
class | Display |
class | Doorbell |
Generic doorbell interface. More... | |
class | EnergyCtrl |
class | FlashDevice |
Flash Device model The Flash Device model is a timing model for a NAND flash device. More... | |
class | FVPBasePwrCtrl |
class | SystemCounterListener |
Abstract class for elements whose events depend on the counting speed of the System Counter. More... | |
class | SystemCounter |
Global system counter. More... | |
class | ArchTimer |
Per-CPU architected timer. More... | |
class | ArchTimerKvm |
class | GenericTimer |
class | GenericTimerISA |
class | GenericTimerFrame |
class | GenericTimerMem |
class | GicV2Registers |
class | GicV2 |
class | Gicv2mFrame |
Ultimately this class should be embedded in the Gicv2m class, but this confuses Python as 'Gicv2m::Frame' gets interpreted as 'Frame' in namespace Gicv2m. More... | |
class | Gicv2m |
class | Gicv3Registers |
class | Gicv3 |
class | Gicv3CPUInterface |
class | Gicv3Distributor |
struct | ItsAction |
class | Gicv3Its |
GICv3 ITS module. More... | |
class | ItsProcess |
ItsProcess is a base coroutine wrapper which is spawned by the Gicv3Its module when the latter needs to perform different actions, like translating a peripheral's MSI into an LPI (See derived ItsTranslation) or processing a Command from the ITS queue (ItsCommand). More... | |
class | ItsTranslation |
An ItsTranslation is created whenever a peripheral writes a message in GITS_TRANSLATER (MSI). More... | |
class | ItsCommand |
An ItsCommand is created whenever there is a new command in the command queue. More... | |
class | Gicv3Redistributor |
class | NoMaliGpu |
class | CustomNoMaliGpu |
class | HDLcd |
class | Pl050 |
class | GenericArmPciHost |
class | Pl011 |
class | Pl111 |
class | RealView |
class | PL031 |
class | RealViewCtrl |
class | RealViewOsc |
This is an implementation of a programmable oscillator on the that can be configured through the RealView/Versatile Express configuration interface. More... | |
class | RealViewTemperatureSensor |
This device implements the temperature sensor used in the RealView/Versatile Express platform. More... | |
class | SMMUv3 |
class | SMMUv3BaseCache |
class | SMMUTLB |
class | ARMArchTLB |
class | IPACache |
class | ConfigCache |
class | WalkCache |
class | SMMUCommandExecProcess |
union | SMMURegs |
struct | StreamTableEntry |
struct | ContextDescriptor |
struct | SMMUCommand |
struct | SMMUEvent |
class | SMMUv3DeviceInterface |
class | SMMUDeviceRetryEvent |
class | SMMURequestPort |
class | SMMUTableWalkPort |
class | SMMUDevicePort |
class | SMMUControlPort |
class | SMMUATSMemoryPort |
class | SMMUATSDevicePort |
struct | SMMUAction |
struct | SMMUSemaphore |
struct | SMMUSignal |
class | SMMUProcess |
struct | SMMUTranslRequest |
class | SMMUTranslationProcess |
class | SysSecCtrl |
System Security Control registers. More... | |
class | CpuLocalTimer |
class | Sp804 |
class | UFSHostDevice |
Host controller layer: This is your Host controller This layer handles the UFS functionality. More... | |
class | VGic |
class | MmioVirtIO |
class | GenericWatchdog |
class | Sp805 |
class | BadDevice |
BadDevice This device just panics when accessed. More... | |
class | DmaPort |
class | DmaDevice |
class | DmaCallback |
DMA callback class. More... | |
class | DmaReadFifo |
Buffered DMA engine helper class. More... | |
class | DmaVirtDevice |
struct | hsa_packet_header_bitfield_t |
struct | _hsa_dispatch_packet_t |
struct | _hsa_agent_dispatch_packet_t |
struct | _hsa_barrier_and_packet_t |
struct | _hsa_barrier_or_packet_t |
class | HSAQueueDescriptor |
class | AQLRingBuffer |
Internal ring buffer which is used to prefetch/store copies of the in-memory HSA ring buffer. More... | |
struct | QCntxt |
class | HSAPacketProcessor |
struct | _hsa_signal_t |
struct | _hsa_queue_t |
struct | _amd_queue_t |
struct | amd_signal_s |
class | HWScheduler |
struct | kfd_ioctl_get_version_args |
struct | kfd_ioctl_create_queue_args |
struct | kfd_ioctl_destroy_queue_args |
struct | kfd_ioctl_update_queue_args |
struct | kfd_ioctl_set_cu_mask_args |
struct | kfd_ioctl_get_queue_wave_state_args |
struct | kfd_ioctl_set_memory_policy_args |
struct | kfd_ioctl_get_clock_counters_args |
struct | kfd_process_device_apertures |
struct | kfd_ioctl_get_process_apertures_args |
struct | kfd_ioctl_get_process_apertures_new_args |
struct | kfd_ioctl_dbg_register_args |
struct | kfd_ioctl_dbg_unregister_args |
struct | kfd_ioctl_dbg_address_watch_args |
struct | kfd_ioctl_dbg_wave_control_args |
struct | kfd_ioctl_create_event_args |
struct | kfd_ioctl_destroy_event_args |
struct | kfd_ioctl_set_event_args |
struct | kfd_ioctl_reset_event_args |
struct | kfd_memory_exception_failure |
struct | kfd_hsa_memory_exception_data |
struct | kfd_hsa_hw_exception_data |
struct | kfd_event_data |
struct | kfd_ioctl_wait_events_args |
struct | kfd_ioctl_set_scratch_backing_va_args |
struct | kfd_ioctl_get_tile_config_args |
struct | kfd_ioctl_set_trap_handler_args |
struct | kfd_ioctl_acquire_vm_args |
struct | kfd_ioctl_alloc_memory_of_gpu_args |
struct | kfd_ioctl_free_memory_of_gpu_args |
struct | kfd_ioctl_map_memory_to_gpu_args |
struct | kfd_ioctl_unmap_memory_from_gpu_args |
struct | kfd_ioctl_alloc_queue_gws_args |
struct | kfd_ioctl_get_dmabuf_info_args |
struct | kfd_ioctl_import_dmabuf_args |
struct | kfd_ioctl_smi_events_args |
class | I2CBus |
class | I2CDevice |
class | Intel8254Timer |
Programmable Interval Timer (Intel 8254) More... | |
class | IntSinkPinBase |
class | IntSinkPin |
class | IntSourcePinBase |
class | IntSourcePin |
class | PioPort |
The PioPort class is a programmed i/o port that all devices that are sensitive to an address range use. More... | |
class | PioDevice |
This device is the base class which all devices senstive to an address range inherit from. More... | |
class | BasicPioDevice |
class | IsaFake |
IsaFake is a device that returns, BadAddr, 1 or 0 on all reads and rites. More... | |
class | LupioBLK |
LupioBLK: A virtual block device which aims to provide a disk-like interface for second-level storage. More... | |
class | LupioIPI |
LupioIPI: An inter-processor interrupt virtual device. More... | |
class | LupioPIC |
LupioPIC: A programmable interrupt controller virtual device that can manage input IRQs coming from up to 32 sources. More... | |
class | LupioRNG |
LupioRNG: A Random Number Generator virtual device that returns either a random value, or a seed that can be configured by the user. More... | |
class | LupioRTC |
LupioRTC: A Real-Time Clock Virtual Device that returns the current date and time in ISO 8601 format. More... | |
class | LupioSYS |
LupioSYS: A Real-Time System Controller virtual device which provides a way for the software to halt or reboot the computer system. More... | |
class | LupioTMR |
LupioTMR: A virtual timer device which provides a real time counter, as well as a configurable timer offering periodic and one shot modes. More... | |
class | LupioTTY |
LupioTTY: The LupioTTY is a virtual terminal device that can both transmit characters to a screen, as well as receive characters input from a keyboard. More... | |
class | MC146818 |
Real-Time Clock (MC146818) More... | |
class | Malta |
Top level class for Malta Chipset emulation. More... | |
class | MaltaCChip |
Malta CChip CSR Emulation. More... | |
class | MaltaIO |
Malta I/O device is a catch all for all the south bridge stuff we care to implement. More... | |
class | DistEtherLink |
Model for a fixed bandwidth full duplex ethernet link. More... | |
class | DistIface |
The interface class to talk to peer gem5 processes. More... | |
class | DistHeaderPkt |
class | EtherBus |
class | EtherDevice |
class | EtherDevBase |
Dummy class to keep the Python class hierarchy in sync with the C++ object hierarchy. More... | |
struct | pcap_file_header |
struct | pcap_pkthdr |
class | EtherDump |
class | EtherInt |
class | EtherLink |
class | EthPacketData |
class | EtherSwitch |
class | TapEvent |
class | TapListener |
class | EtherTapBase |
class | EtherTapInt |
class | EtherTapStub |
class | IGbE |
class | IGbEInt |
struct | dp_regs |
Ethernet device registers. More... | |
struct | dp_rom |
class | NSGigE |
NS DP83820 Ethernet device model. More... | |
class | NSGigEInt |
struct | ns_desc32 |
struct | ns_desc64 |
struct | PacketFifoEntry |
class | PacketFifo |
class | TCPIface |
class | CopyEngine |
class | PciBar |
class | PciBarNone |
class | PciIoBar |
class | PciLegacyIoBar |
class | PciMemBar |
class | PciMemUpperBar |
class | PciDevice |
PCI device, base implementation is only config space. More... | |
class | PciHost |
The PCI host describes the interface between PCI devices and a simulated system. More... | |
class | GenericPciHost |
Configurable generic PCI host interface. More... | |
struct | PciBusAddr |
struct | DisplayTimings |
class | BasePixelPump |
Timing generator for a pixel-based display. More... | |
class | Platform |
class | RegisterBankBase |
class | RegisterBank |
struct | ParseParam< T, std::enable_if_t< std::is_base_of_v< typename RegisterBankBase::RegisterBaseBase, T > > > |
struct | ShowParam< T, std::enable_if_t< std::is_base_of_v< typename RegisterBankBase::RegisterBaseBase, T > > > |
class | ResetResponsePortBase |
class | ResetResponsePort |
class | ResetRequestPort |
class | Clint |
NOTE: This implementation of CLINT is based on the SiFive U54MC datasheet: https://sifive.cdn.prismic.io/sifive/fab000f6- 0e07-48d0-9602-e437d5367806_sifive_U54MC_rtl_ full_20G1.03.00_manual.pdf. More... | |
class | HiFive |
class | LupV |
The LupV collection consists of a RISC-V processor, as well as the set of LupiIO devices. More... | |
class | GenericRiscvPciHost |
struct | PlicOutput |
NOTE: This implementation of CLINT is based on the SiFive U54MC datasheet: https://sifive.cdn.prismic.io/sifive/fab000f6- 0e07-48d0-9602-e437d5367806_sifive_U54MC_rtl_ full_20G1.03.00_manual.pdf. More... | |
class | Plic |
class | PlicIntDevice |
class | RiscvRTC |
NOTE: This is a generic wrapper around the MC146818 RTC. More... | |
class | SerialDevice |
Base class for serial devices such as terminals. More... | |
class | SerialNullDevice |
Dummy serial device that discards all data sent to it. More... | |
class | SimpleUart |
class | Terminal |
class | Uart |
class | Uart8250 |
class | DumbTOD |
DumbTOD simply returns some idea of time when read. More... | |
class | Iob |
class | MmDisk |
class | T1000 |
class | DiskImage |
Basic interface for accessing a disk image. More... | |
class | RawDiskImage |
Specialization for accessing a raw disk image. More... | |
class | CowDiskImage |
Specialization for accessing a copy-on-write disk image layer. More... | |
class | IdeController |
Device model for an Intel PIIX4 IDE controller. More... | |
struct | PrdEntry_t |
class | PrdTableEntry |
struct | CommandReg_t |
class | IdeDisk |
IDE Disk device model. More... | |
class | SimpleDisk |
class | VirtDescriptor |
VirtIO descriptor (chain) wrapper. More... | |
class | VirtQueue |
Base wrapper around a virtqueue. More... | |
class | VirtIODeviceBase |
Base class for all VirtIO-based devices. More... | |
class | VirtIODummyDevice |
class | VirtIOBlock |
VirtIO block device. More... | |
class | VirtIOConsole |
VirtIO console. More... | |
struct | P9MsgInfo |
struct | P9MsgHeader |
class | VirtIO9PBase |
This class implements a VirtIO transport layer for the 9p network file system. More... | |
class | VirtIO9PProxy |
VirtIO 9p proxy base class. More... | |
class | VirtIO9PDiod |
VirtIO 9p proxy that communicates with the diod 9p server using pipes. More... | |
class | VirtIO9PSocket |
VirtIO 9p proxy that communicates with a 9p server over tcp sockets. More... | |
class | PciVirtIO |
class | VirtIORng |
VirtIO Rng. More... | |
class | X86IdeController |
class | Pc |
class | SouthBridge |
class | PipeStageIFace |
class | ScoreboardCheckToSchedule |
Communication interface between ScoreboardCheck and Schedule stages. More... | |
class | ScheduleToExecute |
Communication interface between Schedule and Execute stages. More... | |
class | WFBarrier |
WF barrier slots. More... | |
class | ComputeUnit |
class | GPUDispatcher |
class | DynPoolManager |
class | ExecStage |
class | FetchStage |
class | FetchUnit |
class | GlobalMemPipeline |
class | GPUCommandProcessor |
class | GPUComputeDriver |
class | AtomicOpCAS |
class | RegisterOperandInfo |
class | GPUDynInst |
class | GPUExecContext |
class | GPURenderDriver |
class | GPUStaticInst |
class | KernelLaunchStaticInst |
class | HSAQueueEntry |
struct | AMDKernelCode |
class | LdsChunk |
this represents a slice of the overall LDS, intended to be associated with an individual workgroup More... | |
class | LdsState |
class | LocalMemPipeline |
class | WaitClass |
class | Float16 |
class | OFSchedulingPolicy |
class | OperandInfo |
class | PoolManager |
class | RegisterFile |
class | RegisterManager |
class | RegisterManagerPolicy |
Register Manager Policy abstract class. More... | |
class | RRSchedulingPolicy |
class | ScalarMemPipeline |
class | ScalarRegisterFile |
class | ScheduleStage |
class | Scheduler |
class | SchedulingPolicy |
Interface class for the wave scheduling policy. More... | |
class | __SchedulingPolicy |
Intermediate class that derives from the i-face class, and implements its API. More... | |
class | ScoreboardCheckStage |
struct | ApertureRegister |
class | Shader |
class | SimplePoolManager |
class | StaticRegisterManagerPolicy |
class | VectorRegisterFile |
class | Wavefront |
class | FreeBSD |
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to the Alpha FreeBSD syscall interface. More... | |
class | OpenFlagTable |
class | Linux |
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to the Alpha Linux syscall interface. More... | |
class | OperatingSystem |
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to an operating system syscall interface. More... | |
class | Solaris |
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to the Solaris syscall interface. More... | |
class | SkipFuncBase |
class | GoodbyeObject |
class | HelloObject |
class | SimpleCache |
A very simple cache object. More... | |
class | SimpleMemobj |
A very simple memory object. More... | |
class | SimpleObject |
class | AddrMapper |
An address mapper changes the packet addresses in going from the response port side of the mapper to the request port side. More... | |
class | RangeAddrMapper |
Range address mapper that maps a set of original ranges to a set of remapped ranges, where a specific range is of the same size (original and remapped), only with an offset. More... | |
class | MemBackdoor |
class | Bridge |
A bridge is used to interface two different crossbars (or in general a memory-mapped requestor and responder), with buffering for requests and responses. More... | |
class | BaseCache |
A basic cache interface. More... | |
class | WriteAllocator |
The write allocator inspects write packets and detects streaming patterns. More... | |
class | Cache |
A coherent cache that can be arranged in flexible topologies. More... | |
class | CacheBlk |
A Basic Cache block. More... | |
class | TempCacheBlk |
Special instance of CacheBlk for use with tempBlk that deals with its block address regeneration. More... | |
class | CacheBlkPrintWrapper |
Simple class to provide virtual print() method on cache blocks without allocating a vtable pointer for every single cache block. More... | |
class | MSHR |
Miss Status and handling Register. More... | |
class | MSHRQueue |
A Class for maintaining a list of pending and allocated memory requests. More... | |
class | NoncoherentCache |
A non-coherent cache. More... | |
class | AssociativeSet |
Associative container based on the previosuly defined Entry type Each element is indexed by a key of type Addr, an additional bool value is used as an additional tag data of the entry. More... | |
class | Queue |
A high-level queue interface, to be used by both the MSHR queue and the write buffer. More... | |
class | QueueEntry |
A queue entry base class, to be used by both the MSHRs and write-queue entries. More... | |
class | ReplaceableEntry |
A replaceable entry is a basic entry in a 2d table-like structure that needs to have replacement functionality. More... | |
class | BaseTags |
A common base class of Cache tagstore objects. More... | |
class | BaseSetAssoc |
A basic cache tag store. More... | |
class | CompressedTags |
A CompressedTags cache tag store. More... | |
class | Dueler |
A dueler is an entry that may or may not be accounted for sampling. More... | |
class | DuelingMonitor |
Duel between two sampled options to determine which is the winner. More... | |
class | FALRUBlk |
A fully associative cache block. More... | |
class | FALRU |
A fully associative LRU cache. More... | |
class | BaseIndexingPolicy |
A common base class for indexing table locations. More... | |
class | SetAssociative |
A set associative indexing policy. More... | |
class | SkewedAssociative |
A skewed associative indexing policy. More... | |
class | SectorSubBlk |
A sector is composed of sub-blocks, and each sub-block has information regarding its sector and a pointer to its sector tag. More... | |
class | SectorBlk |
A Basic Sector block. More... | |
class | SectorTags |
A SectorTags cache tag store. More... | |
class | CompressionBlk |
A superblock is composed of sub-blocks, and each sub-block has information regarding its superblock and a pointer to its superblock tag. More... | |
class | SuperBlk |
A basic compression superblock. More... | |
class | TaggedEntry |
A tagged entry is an entry containing a tag. More... | |
class | WriteQueue |
A write queue for all eviction packets, i.e. More... | |
class | WriteQueueEntry |
Write queue entry. More... | |
class | CoherentXBar |
A coherent crossbar connects a number of (potentially) snooping requestors and responders, and routes the request and response packets based on the address, and also forwards all requests to the snoopers and deals with the snoop responses. More... | |
class | CommMonitor |
The communication monitor is a SimObject which can monitor statistics of the communication happening between two ports in the memory system. More... | |
class | DRAMPower |
DRAMPower is a standalone tool which calculates the power consumed by a DRAM in the system. More... | |
class | ExternalMaster |
class | StubSlavePort |
Implement a ‘stub’ port which just responds to requests by printing a message. More... | |
class | StubSlavePortHandler |
class | ExternalSlave |
class | HMCController |
HMC Controller, in general, is responsible for translating the host protocol (AXI for example) to serial links protocol. More... | |
class | MemChecker |
MemChecker. More... | |
class | MemCheckerMonitor |
Implements a MemChecker monitor, to be inserted between two ports. More... | |
class | MemDelay |
This abstract component provides a mechanism to delay packets. More... | |
class | SimpleMemDelay |
Delay packets by a constant time. More... | |
struct | RequestorInfo |
The RequestorInfo class contains data about a specific requestor. More... | |
class | MultiLevelPageTable |
class | NoncoherentXBar |
A non-coherent crossbar connects a number of non-snooping memory-side ports and cpu_sides, and routes the request and response packets based on the address. More... | |
class | MemCmd |
class | Packet |
A Packet is used to encapsulate a transfer between two objects in the memory system (e.g., the L1 and L2 cache). More... | |
class | PacketQueue |
A packet queue is a class that holds deferred packets and later sends them using the associated CPU-side port or memory-side port. More... | |
class | ReqPacketQueue |
class | SnoopRespPacketQueue |
class | RespPacketQueue |
class | EmulationPageTable |
class | RequestPort |
A RequestPort is a specialisation of a Port, which implements the default protocol for the three different level of transport functions. More... | |
class | MasterPort |
class | ResponsePort |
A ResponsePort is a specialization of a port. More... | |
class | SlavePort |
class | PortProxy |
This object is a proxy for a port or other object which implements the functional response protocol, to be used for debug accesses. More... | |
class | PortTerminator |
class | BaseMemProbe |
Base class for memory system probes accepting Packet instances. More... | |
class | MemFootprintProbe |
Probe to track footprint of accessed memory Two granularity of footprint measurement i.e. More... | |
class | MemTraceProbe |
class | StackDistProbe |
class | AtomicRequestProtocol |
class | AtomicResponseProtocol |
class | FunctionalRequestProtocol |
class | FunctionalResponseProtocol |
class | TimingRequestProtocol |
class | TimingResponseProtocol |
class | QueuedResponsePort |
A queued port is a port that has an infinite queue for outgoing packets and thus decouples the module that wants to send request/responses from the flow control (retry mechanism) of the port. More... | |
class | QueuedRequestPort |
The QueuedRequestPort combines two queues, a request queue and a snoop response queue, that both share the same port. More... | |
class | Request |
class | SETranslatingPortProxy |
class | SerialLink |
SerialLink is a simple variation of the Bridge class, with the ability to account for the latency of packet serialization. More... | |
class | SnoopFilter |
This snoop filter keeps track of which connected port has a particular line of data. More... | |
class | StackDistCalc |
The stack distance calculator is a passive object that merely observes the addresses pass to it. More... | |
class | SysBridge |
Each System object in gem5 is responsible for a set of RequestorIDs which identify different sources for memory requests within that System. More... | |
class | ThreadBridge |
class | TokenRequestPort |
class | TokenResponsePort |
class | TokenManager |
class | SimpleTimingPort |
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvAtomic. More... | |
class | TranslatingPortProxy |
This proxy attempts to translate virtual addresses using the TLBs. More... | |
class | TranslationGen |
TranslationGen is a base class for a generator object which returns information about address translations over a range of virtual addresses. More... | |
class | TranslationGenConstIterator |
An iterator for pulling "Range" instances out of a TranslationGen. More... | |
class | FaultBase |
class | BaseXBar |
The base crossbar contains the common elements of the non-coherent and coherent crossbar. More... | |
struct | EmbeddedPython |
class | PybindSimObjectResolver |
Resolve a SimObject name using the Pybind configuration. More... | |
class | PyEvent |
PyBind wrapper for Events. More... | |
struct | PybindModuleInit |
class | ClockDomain |
The ClockDomain provides clock to group of clocked objects bundled under the same clock domain. More... | |
class | SrcClockDomain |
The source clock domains provides the notion of a clock domain that is connected to a tunable clock source. More... | |
class | DerivedClockDomain |
The derived clock domains provides the notion of a clock domain that is connected to a parent clock domain that can either be a source clock domain or a derived clock domain. More... | |
class | Clocked |
Helper class for objects that need to be clocked. More... | |
class | ClockedObject |
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to the cycles of the object. More... | |
class | CxxConfigDirectoryEntry |
Config details entry for a SimObject. More... | |
class | CxxConfigParams |
Base for peer classes of SimObjectParams derived classes with parameter modifying member functions. More... | |
class | CxxConfigFileBase |
Config file wrapper providing a common interface to CxxConfigManager. More... | |
class | CxxIniFile |
CxxConfigManager interface for using .ini files. More... | |
class | CxxConfigManager |
This class allows a config file to be read into gem5 (generating the appropriate SimObjects) from C++. More... | |
struct | DebugBreakEvent |
class | DrainManager |
class | Drainable |
Interface for objects that might require draining before checkpointing. More... | |
class | DVFSHandler |
DVFS Handler class, maintains a list of all the domains it can handle. More... | |
class | EmulatedDriver |
EmulatedDriver is an abstract base class for fake SE-mode device drivers. More... | |
class | EventBase |
Common base class for Event and GlobalEvent, so they can share flag and priority definitions and accessor functions. More... | |
class | Event |
class | EventQueue |
Queue of events sorted in time order. More... | |
class | EventManager |
class | EventWrapper |
class | EventFunctionWrapper |
class | UnimpFault |
class | SESyscallFault |
class | ReExec |
class | SyscallRetryFault |
class | GenericPageTableFault |
class | GenericAlignmentFault |
class | GenericHtmFailureFault |
class | FDArray |
class | FDEntry |
Holds a single file descriptor mapping and that mapping's data for processes running in syscall emulation mode. More... | |
class | HBFDEntry |
Extends the base class to include a host-backed file descriptor field that records the integer used to represent the file descriptor on the host and the file's flags. More... | |
class | FileFDEntry |
Holds file descriptors for host-backed files; host-backed files are files which were opened on the physical machine where the simulation is running (probably the thing on/under your desk). More... | |
class | PipeFDEntry |
Holds the metadata needed to maintain the mappings for file descriptors allocated with the pipe() system calls and its variants. More... | |
class | DeviceFDEntry |
Holds file descriptors needed to simulate devices opened with pseudo files (commonly with calls to ioctls). More... | |
class | SocketFDEntry |
class | FutexKey |
FutexKey class defines an unique identifier for a particular futex in the system. More... | |
class | WaiterState |
WaiterState defines internal state of a waiter thread. More... | |
class | FutexMap |
FutexMap class holds a map of all futexes used in the system. More... | |
class | BaseGlobalEvent |
Common base class for GlobalEvent and GlobalSyncEvent. More... | |
class | BaseGlobalEventTemplate |
Funky intermediate class to support CRTP so that we can have a common constructor to create the local events, even though the types of the local events are defined in the derived classes. More... | |
class | GlobalEvent |
The main global event class. More... | |
class | GlobalSyncEvent |
A special global event that synchronizes all threads and forces them to process asynchronously enqueued events. More... | |
class | Globals |
Container for serializing global variables (not associated with any serialized object). More... | |
class | EmbeddedPyBind |
class | KernelWorkload |
class | LinearEquation |
This class describes a linear equation with constant coefficients. More... | |
class | LinearSystem |
class | MathExpr |
class | MemPool |
Class for handling allocation of physical pages in SE mode. More... | |
class | MemPools |
class | MemState |
This class holds the memory state for the Process class and all of its derived, architecture-specific children. More... | |
class | Port |
Ports are used to interface objects to each other. More... | |
class | MathExprPowerModel |
A Equation power model. More... | |
class | PowerModelState |
A PowerModelState is an abstract class used as interface to get power figures out of SimObjects. More... | |
class | PowerModel |
class | ProbePointArg |
ProbePointArg generates a point for the class of Arg. More... | |
class | ThermalDomain |
A ThermalDomain is used to group objects under that operate under the same temperature. More... | |
class | ThermalEntity |
An abstract class that represents any thermal entity which is used in the circuital thermal equivalent model. More... | |
class | ThermalResistor |
A ThermalResistor is used to model a thermal resistance between two thermal domains. More... | |
class | ThermalCapacitor |
A ThermalCapacitor is used to model a thermal capacitance between two thermal domains. More... | |
class | ThermalReference |
A ThermalReference is a thermal domain with fixed temperature. More... | |
class | ThermalModel |
class | ThermalNode |
A ThermalNode is used to connect thermal entities, such as resistors, capacitors, references and domains. More... | |
class | PowerDomain |
The PowerDomain groups PowerState objects together to regulate their power states. More... | |
class | PowerState |
Helper class for objects that have power states. More... | |
class | ProbeListenerObject |
This class is a minimal wrapper around SimObject. More... | |
class | ProbeListener |
ProbeListener base class; here to simplify things like containers containing multiple types of ProbeListener. More... | |
class | ProbePoint |
ProbeListener base class; again used to simplify use of ProbePoints in containers and used as to define interface for adding removing listeners to the ProbePoint. More... | |
class | ProbeManager |
ProbeManager is a conduit class that lives on each SimObject, and is used to match up probe listeners with probe points. More... | |
class | ProbeListenerArgBase |
ProbeListenerArgBase is used to define the base interface to a ProbeListenerArg (i.e the notify method on specific type). More... | |
class | ProbeListenerArg |
ProbeListenerArg generates a listener for the class of Arg and the class type T which is the class containing the function that notify will call. More... | |
class | Process |
class | ProxyPtrBuffer |
class | ConstProxyPtr |
class | ProxyPtr |
class | ProxyPtr< void, Proxy > |
class | RedirectPath |
RedirectPath stores a mapping from one 'appPath' to a vector of 'hostPath'. More... | |
class | Root |
class | BasicSignal |
class | SEWorkload |
class | CheckpointIn |
class | Serializable |
Basic support for object serialization. More... | |
struct | ParseParam |
struct | ParseParam< T, decltype(to_number("", std::declval< T & >()), void())> |
struct | ParseParam< bool > |
struct | ParseParam< std::string > |
struct | ShowParam |
struct | ShowParam< T, std::enable_if_t< std::is_same_v< char, T >||std::is_same_v< unsigned char, T >||std::is_same_v< signed char, T > > > |
struct | ShowParam< bool > |
class | GlobalSimLoopExitEvent |
class | LocalSimLoopExitEvent |
class | CountedExitEvent |
class | SimObject |
Abstract superclass for simulation objects. More... | |
class | SimObjectResolver |
Base class to wrap object resolving functionality. More... | |
class | SimulatorThreads |
struct | DescheduleDeleter |
class | SubSystem |
The SubSystem simobject does nothing, it is just a container for other simobjects used by the configuration system. More... | |
struct | GenericSyscallABI |
struct | GenericSyscallABI64 |
struct | GenericSyscallABI32 |
class | SyscallDesc |
This class provides the wrapper interface for the system call implementations which are defined in the sim/syscall_emul files and bound to the ISAs in the architecture specific code (i.e. More... | |
class | SyscallDescABI |
class | SyscallDescTable |
class | BaseBufferArg |
Base class for BufferArg and TypedBufferArg, Not intended to be used directly. More... | |
class | BufferArg |
BufferArg represents an untyped buffer in target user space that is passed by reference to an (emulated) system call. More... | |
class | TypedBufferArg |
TypedBufferArg is a class template; instances of this template represent typed buffers in target user space that are passed by reference to an (emulated) system call. More... | |
class | SyscallReturn |
This class represents the return value from an emulated system call, including any errno setting. More... | |
class | System |
class | Ticked |
Ticked attaches gem5's event queue/scheduler to evaluate calls and provides a start/stop interface to ticking. More... | |
class | TickedObject |
TickedObject attaches Ticked to ClockedObject and can be used as a base class where ticked operation. More... | |
class | VMA |
class | VoltageDomain |
A VoltageDomain is used to group clock domains that operate under the same voltage. More... | |
class | Workload |
class | StubWorkload |
class | OutgoingRequestBridge |
class | SSTResponderInterface |
Functions | |
template<typename T , int N> | |
void | initMemReqHelper (GPUDynInstPtr gpuDynInst, MemCmd mem_req_type, bool is_atomic=false) |
Helper function for instructions declared in op_encodings. More... | |
template<typename T , int N> | |
void | initMemReqScalarHelper (GPUDynInstPtr gpuDynInst, MemCmd mem_req_type) |
Helper function for scalar instructions declared in op_encodings. More... | |
GEM5_DEPRECATED_NAMESPACE (GuestABI, guest_abi) | |
GEM5_DEPRECATED_NAMESPACE (FastModel, fastmodel) | |
static const uint64_t | KVM_REG64_TTBR0 (regCp64(15, 0, 2)) |
static const uint64_t | KVM_REG64_TTBR1 (regCp64(15, 1, 2)) |
constexpr uint64_t | kvmXReg (const int num) |
constexpr uint64_t | kvmFPReg (const int num) |
static bool | tryTranslate (ThreadContext *tc, Addr addr) |
std::ostream & | operator<< (std::ostream &os, const ArmSemihosting::InPlaceArg &ipa) |
GEM5_DEPRECATED_NAMESPACE (FreeBSD, free_bsd) | |
GEM5_DEPRECATED_NAMESPACE (Linux, linux) | |
template<class XC > | |
Fault | initiateMemRead (XC *xc, Addr addr, std::size_t size, Request::Flags flags, const std::vector< bool > &byte_enable) |
template<class XC , class MemT > | |
Fault | initiateMemRead (XC *xc, trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags) |
Initiate a read from memory in timing mode. More... | |
template<ByteOrder Order, class MemT > | |
void | getMem (PacketPtr pkt, MemT &mem, trace::InstRecord *traceData) |
Extract the data returned from a timing mode read. More... | |
template<class MemT > | |
void | getMemLE (PacketPtr pkt, MemT &mem, trace::InstRecord *traceData) |
template<class MemT > | |
void | getMemBE (PacketPtr pkt, MemT &mem, trace::InstRecord *traceData) |
template<class XC > | |
Fault | readMemAtomic (XC *xc, Addr addr, uint8_t *mem, std::size_t size, Request::Flags flags, const std::vector< bool > &byte_enable) |
Read from memory in atomic mode. More... | |
template<ByteOrder Order, class XC , class MemT > | |
Fault | readMemAtomic (XC *xc, trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags) |
Read from memory in atomic mode. More... | |
template<class XC , class MemT > | |
Fault | readMemAtomicLE (XC *xc, trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags) |
template<class XC , class MemT > | |
Fault | readMemAtomicBE (XC *xc, trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags) |
template<class XC > | |
Fault | writeMemTiming (XC *xc, uint8_t *mem, Addr addr, std::size_t size, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable) |
Write to memory in timing mode. More... | |
template<ByteOrder Order, class XC , class MemT > | |
Fault | writeMemTiming (XC *xc, trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , class MemT > | |
Fault | writeMemTimingLE (XC *xc, trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , class MemT > | |
Fault | writeMemTimingBE (XC *xc, trace::InstRecord *traceData, MemT mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC > | |
Fault | writeMemAtomic (XC *xc, uint8_t *mem, Addr addr, std::size_t size, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable) |
Write to memory in atomic mode. More... | |
template<ByteOrder Order, class XC , class MemT > | |
Fault | writeMemAtomic (XC *xc, trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , class MemT > | |
Fault | writeMemAtomicLE (XC *xc, trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<class XC , class MemT > | |
Fault | writeMemAtomicBE (XC *xc, trace::InstRecord *traceData, const MemT &mem, Addr addr, Request::Flags flags, uint64_t *res) |
template<ByteOrder Order, class XC , class MemT > | |
Fault | amoMemAtomic (XC *xc, trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op) |
Do atomic read-modify-write (AMO) in atomic mode. More... | |
template<class XC , class MemT > | |
Fault | amoMemAtomicLE (XC *xc, trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op) |
template<class XC , class MemT > | |
Fault | amoMemAtomicBE (XC *xc, trace::InstRecord *traceData, MemT &mem, Addr addr, Request::Flags flags, AtomicOpFunctor *_amo_op) |
template<class XC , class MemT > | |
Fault | initiateMemAMO (XC *xc, trace::InstRecord *traceData, Addr addr, MemT &mem, Request::Flags flags, AtomicOpFunctor *_amo_op) |
Do atomic read-modify-wrote (AMO) in timing mode. More... | |
static std::ostream & | operator<< (std::ostream &os, const PCStateBase &pc) |
static bool | operator== (const PCStateBase &a, const PCStateBase &b) |
static bool | operator!= (const PCStateBase &a, const PCStateBase &b) |
auto | operator& (TypeTLB lhs, TypeTLB rhs) |
Implementing the "&" bitwise operator for TypeTLB allows us to handle TypeTLB::unified efficiently. More... | |
typedef | GEM5_ALIGNED (8) uint64_t uint64_ta |
GEM5_DEPRECATED_NAMESPACE (Loader, loader) | |
static Addr | buildKey (Addr vpn, uint16_t asid) |
static std::string | getMiscRegName (RegIndex index) |
template<class T > | |
void | writeVal (T val, PortProxy &proxy, Addr &addr) |
template<class T > | |
uint8_t | writeOutField (PortProxy &proxy, Addr addr, T val) |
uint8_t | writeOutString (PortProxy &proxy, Addr addr, std::string str, int length) |
template<class T > | |
uint64_t | composeBitVector (T vec) |
int | divideFromConf (uint32_t conf) |
template<typename Struct , typename Entry > | |
static auto | newVarStruct (size_t entries) |
static void | dumpKvm (const struct kvm_regs ®s) |
static void | dumpKvm (const char *reg_name, const struct kvm_segment &seg) |
static void | dumpKvm (const char *reg_name, const struct kvm_dtable &dtable) |
static void | dumpKvm (const struct kvm_sregs &sregs) |
static void | dumpFpuSpec (const struct FXSave &xs) |
static void | dumpFpuSpec (const struct kvm_fpu &fpu) |
template<typename T > | |
static void | dumpFpuCommon (const T &fpu) |
static void | dumpKvm (const struct kvm_fpu &fpu) |
static void | dumpKvm (const struct kvm_xsave &xsave) |
static void | dumpKvm (const struct kvm_msrs &msrs) |
static void | dumpKvm (const struct kvm_xcrs ®s) |
static void | dumpKvm (const struct kvm_vcpu_events &events) |
static bool | isCanonicalAddress (uint64_t addr) |
static void | checkSeg (const char *name, const int idx, const struct kvm_segment &seg, struct kvm_sregs sregs) |
static void | setKvmSegmentReg (ThreadContext *tc, struct kvm_segment &kvm_seg, const int index) |
static void | setKvmDTableReg (ThreadContext *tc, struct kvm_dtable &kvm_dtable, const int index) |
static void | forceSegAccessed (struct kvm_segment &seg) |
template<typename T > | |
static void | updateKvmStateFPUCommon (ThreadContext *tc, T &fpu) |
void | setContextSegment (ThreadContext *tc, const struct kvm_segment &kvm_seg, const int index) |
void | setContextSegment (ThreadContext *tc, const struct kvm_dtable &kvm_dtable, const int index) |
template<typename T > | |
static void | updateThreadContextFPUCommon (ThreadContext *tc, const T &fpu) |
static struct kvm_cpuid_entry2 | makeKvmCpuid (uint32_t function, uint32_t index, CpuidResult &result) |
template<> | |
void | paramOut (CheckpointOut &cp, const std::string &name, ExtMachInst const &machInst) |
template<> | |
void | paramIn (CheckpointIn &cp, const std::string &name, ExtMachInst &machInst) |
static AddrRangeList | operator- (const AddrRange &range, const AddrRangeList &to_exclude) |
static AddrRangeList | operator- (const AddrRange &range, const AddrRange &to_exclude) |
static AddrRangeList | exclude (const AddrRangeList &base, AddrRangeList to_exclude) |
static AddrRangeList | exclude (const AddrRangeList &base, const AddrRange &to_exclude) |
static AddrRangeList | operator- (const AddrRangeList &base, const AddrRangeList &to_exclude) |
static AddrRangeList | operator-= (AddrRangeList &base, const AddrRangeList &to_exclude) |
static AddrRangeList | operator- (const AddrRangeList &base, const AddrRange &to_exclude) |
static AddrRangeList | operator-= (AddrRangeList &base, const AddrRange &to_exclude) |
AddrRange | RangeEx (Addr start, Addr end) |
AddrRange | RangeIn (Addr start, Addr end) |
AddrRange | RangeSize (Addr start, Addr size) |
ssize_t | atomic_read (int fd, void *s, size_t n) |
ssize_t | atomic_write (int fd, const void *s, size_t n) |
constexpr uint64_t | mask (unsigned nbits) |
Generate a 64-bit mask of 'nbits' 1s, right justified. More... | |
template<class T > | |
constexpr T | bits (T val, unsigned first, unsigned last) |
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it. More... | |
template<class T > | |
constexpr T | bits (T val, unsigned bit) |
Extract the bit from this position from 'val' and right justify it. More... | |
template<class T > | |
constexpr T | mbits (T val, unsigned first, unsigned last) |
Mask off the given bits in place like bits() but without shifting. More... | |
constexpr uint64_t | mask (unsigned first, unsigned last) |
template<int N> | |
constexpr uint64_t | sext (uint64_t val) |
Sign-extend an N-bit value to 64 bits. More... | |
template<int N> | |
constexpr uint64_t | szext (uint64_t val) |
Sign-extend an N-bit value to 64 bits. More... | |
template<class T , class B > | |
constexpr T | insertBits (T val, unsigned first, unsigned last, B bit_val) |
Returns val with bits first to last set to the LSBs of bit_val. More... | |
template<class T , class B > | |
constexpr T | insertBits (T val, unsigned bit, B bit_val) |
Overloaded for access to only one bit in value. More... | |
template<class T , class B > | |
constexpr void | replaceBits (T &val, unsigned first, unsigned last, B bit_val) |
A convenience function to replace bits first to last of val with bit_val in place. More... | |
template<class T , class B > | |
constexpr void | replaceBits (T &val, unsigned bit, B bit_val) |
Overloaded function to allow to access only 1 bit. More... | |
template<class T > | |
std::enable_if_t< std::is_integral_v< T >, T > | reverseBits (T val, size_t size=sizeof(T)) |
Takes a value and returns the bit reversed version. More... | |
constexpr int | findMsbSet (uint64_t val) |
Returns the bit position of the MSB that is set in the input. More... | |
constexpr int | findLsbSet (uint64_t val) |
Returns the bit position of the LSB that is set in the input. More... | |
constexpr int | popCount (uint64_t val) |
Returns the number of set ones in the provided value. More... | |
constexpr uint64_t | alignToPowerOfTwo (uint64_t val) |
Align to the next highest power of two. More... | |
constexpr int | ctz32 (uint32_t value) |
Count trailing zeros in a 32-bit value. More... | |
constexpr int | ctz64 (uint64_t value) |
Count trailing zeros in a 64-bit value. More... | |
constexpr int | clz32 (uint32_t value) |
Count leading zeros in a 32-bit value. More... | |
constexpr int | clz64 (uint64_t value) |
Count leading zeros in a 64-bit value. More... | |
template<typename T > | |
std::ostream & | operator<< (std::ostream &os, const BitUnionType< T > &bu) |
A default << operator which casts a bitunion to its underlying type and passes it to bitfield_backend::bitfieldBackendPrinter. More... | |
template<class T , class U > | |
T | safe_cast (U ptr) |
std::ostream & | operator<< (std::ostream &out, const gem5::ChannelAddr &addr) |
template<typename T > | |
void | arrayParamOut (CheckpointOut &cp, const std::string &name, const CircleBuf< T > ¶m) |
template<typename T > | |
void | arrayParamIn (CheckpointIn &cp, const std::string &name, CircleBuf< T > ¶m) |
template<typename T > | |
void | arrayParamOut (CheckpointOut &cp, const std::string &name, const Fifo< T > ¶m) |
template<typename T > | |
void | arrayParamIn (CheckpointIn &cp, const std::string &name, Fifo< T > ¶m) |
static bool | findCarry (int width, uint64_t dest, uint64_t src1, uint64_t src2) |
Calculate the carry flag from an addition. More... | |
static bool | findOverflow (int width, uint64_t dest, uint64_t src1, uint64_t src2) |
Calculate the overflow flag from an addition. More... | |
static bool | findParity (int width, uint64_t dest) |
Calculate the parity of a value. More... | |
static bool | findNegative (int width, uint64_t dest) |
Calculate the negative flag. More... | |
static bool | findZero (int width, uint64_t dest) |
Calculate the zero flag. More... | |
void | ccprintf (cp::Print &print) |
template<typename T , typename ... Args> | |
void | ccprintf (cp::Print &print, const T &value, const Args &...args) |
template<typename ... Args> | |
void | ccprintf (std::ostream &stream, const char *format, const Args &...args) |
template<typename ... Args> | |
void | cprintf (const char *format, const Args &...args) |
template<typename ... Args> | |
std::string | csprintf (const char *format, const Args &...args) |
template<typename ... Args> | |
void | ccprintf (std::ostream &stream, const std::string &format, const Args &...args) |
template<typename ... Args> | |
void | cprintf (const std::string &format, const Args &...args) |
template<typename ... Args> | |
std::string | csprintf (const std::string &format, const Args &...args) |
template<uint32_t Poly> | |
uint32_t | crc32 (const uint8_t *data, uint32_t crc, std::size_t size) |
Evaluate the CRC32 of the first size bytes of a data buffer, using a specific polynomium and an initial value. More... | |
GEM5_DEPRECATED_NAMESPACE (Debug, debug) | |
void | setDebugFlag (const char *string) |
void | clearDebugFlag (const char *string) |
void | dumpDebugFlags (std::ostream &os) |
void | setFpRound (RoundingMode rm) |
RoundingMode | getFpRound () |
GEM5_DEPRECATED_NAMESPACE (BloomFilter, bloom_filter) | |
uint64_t | procInfo (const char *filename, const char *target) |
uint64_t | memUsage () |
Determine the simulator process' total virtual memory usage. More... | |
std::unique_ptr< ImgWriter > | createImgWriter (enums::ImageFormat type, const FrameBuffer *fb) |
Factory Function which allocates a ImgWriter object and returns a smart pointer to it. More... | |
GEM5_DEPRECATED_NAMESPACE (Net, networking) | |
template<class T > | |
static constexpr std::enable_if_t< std::is_integral_v< T >, int > | floorLog2 (T x) |
template<class T > | |
static constexpr int | ceilLog2 (const T &n) |
template<class T > | |
static constexpr bool | isPowerOf2 (const T &n) |
template<class T , class U > | |
static constexpr T | divCeil (const T &a, const U &b) |
template<typename T > | |
static constexpr std::enable_if_t< sizeof(T)==sizeof(uint64_t)> | mulUnsigned (std::make_unsigned_t< T > &high, std::make_unsigned_t< T > &low, std::make_unsigned_t< T > val_a, std::make_unsigned_t< T > val_b) |
template<typename T > | |
static constexpr std::enable_if_t< sizeof(T)==sizeof(uint64_t)> | mulSignedManual (std::make_signed_t< T > &high, std::make_signed_t< T > &low, std::make_signed_t< T > val_a, std::make_signed_t< T > val_b) |
template<typename T > | |
static constexpr std::enable_if_t< sizeof(T)==sizeof(uint64_t)> | mulSigned (std::make_signed_t< T > &high, std::make_signed_t< T > &low, std::make_signed_t< T > val_a, std::make_signed_t< T > val_b) |
template<typename T > | |
static constexpr std::pair< std::make_unsigned_t< T >, std::make_unsigned_t< T > > | mulUnsigned (std::make_unsigned_t< T > val_a, std::make_unsigned_t< T > val_b) |
template<typename T > | |
static constexpr std::pair< std::make_signed_t< T >, std::make_signed_t< T > > | mulSigned (std::make_signed_t< T > val_a, std::make_signed_t< T > val_b) |
template<class T , class U > | |
static constexpr T | roundUp (const T &val, const U &align) |
This function is used to align addresses in memory. More... | |
template<class T , class U > | |
static constexpr T | roundDown (const T &val, const U &align) |
This function is used to align addresses in memory. More... | |
static constexpr int | log2i (int value) |
Calculate the log2 of a power of 2 integer. More... | |
template<typename ... Args> | |
std::string | _assertMsg (const std::string &format, Args... args) |
const char * | _assertMsg () |
bool | operator== (const Pixel &lhs, const Pixel &rhs) |
bool | to_number (const std::string &value, Pixel &retval) |
std::ostream & | operator<< (std::ostream &os, const Pixel &pxl) |
static void | writePng (png_structp pngPtr, png_bytep data, png_size_t length) |
Write callback to use with libpng APIs. More... | |
template<class ArgT > | |
static int | fcntlHelper (int fd, int cmd, ArgT arg) |
static int | fcntlHelper (int fd, int cmd) |
template<class T > | |
bool | operator== (const RefCountingPtr< T > &l, const RefCountingPtr< T > &r) |
Check for equality of two reference counting pointers. More... | |
template<class T > | |
bool | operator== (const RefCountingPtr< T > &l, const T *r) |
Check for equality of of a reference counting pointers and a regular pointer. More... | |
template<class T > | |
bool | operator== (const T *l, const RefCountingPtr< T > &r) |
Check for equality of of a reference counting pointers and a regular pointer. More... | |
template<class T > | |
bool | operator!= (const RefCountingPtr< T > &l, const RefCountingPtr< T > &r) |
Check for inequality of two reference counting pointers. More... | |
template<class T > | |
bool | operator!= (const RefCountingPtr< T > &l, const T *r) |
Check for inequality of of a reference counting pointers and a regular pointer. More... | |
template<class T > | |
bool | operator!= (const T *l, const RefCountingPtr< T > &r) |
Check for inequality of of a reference counting pointers and a regular pointer. More... | |
GEM5_DEPRECATED_NAMESPACE (Stats, statistics) | |
void | debugDumpStats () |
template<typename T > | |
bool | emptyStrings (const T &labels) |
Check if all strings in a container are empty. More... | |
bool | split_first (const std::string &s, std::string &lhs, std::string &rhs, char c) |
bool | split_last (const std::string &s, std::string &lhs, std::string &rhs, char c) |
void | tokenize (std::vector< std::string > &v, const std::string &s, char token, bool ignore) |
void | eat_lead_white (std::string &s) |
void | eat_end_white (std::string &s) |
void | eat_white (std::string &s) |
std::string | to_lower (const std::string &s) |
template<class T > | |
std::enable_if_t<(std::is_integral_v< T >||std::is_floating_point_v< T >||std::is_enum_v< T >) &&!std::is_same_v< bool, T >, bool > | to_number (const std::string &value, T &retval) |
Turn a string representation of a number, either integral, floating point, or enum into an actual number. More... | |
bool | to_bool (const std::string &value, bool &retval) |
Turn a string representation of a boolean into a boolean value. More... | |
std::string | quote (const std::string &s) |
bool | startswith (const char *s, const char *prefix) |
Return true if 's' starts with the prefix string 'prefix'. More... | |
bool | startswith (const std::string &s, const char *prefix) |
Return true if 's' starts with the prefix string 'prefix'. More... | |
bool | startswith (const std::string &s, const std::string &prefix) |
Return true if 's' starts with the prefix string 'prefix'. More... | |
std::ostream & | operator<< (std::ostream &out, const Temperature &temp) |
constexpr Temperature | operator* (const Temperature &lhs, const double &rhs) |
constexpr Temperature | operator* (const double &lhs, const Temperature &rhs) |
constexpr Temperature | operator/ (const Temperature &lhs, const double &rhs) |
void | sleep (const Time &time) |
time_t | mkutctime (struct tm *time) |
bool | operator== (const Time &l, const Time &r) |
bool | operator!= (const Time &l, const Time &r) |
bool | operator< (const Time &l, const Time &r) |
bool | operator<= (const Time &l, const Time &r) |
bool | operator> (const Time &l, const Time &r) |
bool | operator>= (const Time &l, const Time &r) |
Time | operator+ (const Time &l, const Time &r) |
Time | operator- (const Time &l, const Time &r) |
std::ostream & | operator<< (std::ostream &out, const Time &time) |
std::ostream & | operator<< (std::ostream &out, const Cycles &cycles) |
static MicroPC | romMicroPC (MicroPC upc) |
static MicroPC | normalMicroPC (MicroPC upc) |
static bool | isRomMicroPC (MicroPC upc) |
static uint32_t | floatToBits32 (float val) |
static uint64_t | floatToBits64 (double val) |
static uint64_t | floatToBits (double val) |
static uint32_t | floatToBits (float val) |
static float | bitsToFloat32 (uint32_t val) |
static double | bitsToFloat64 (uint64_t val) |
static double | bitsToFloat (uint64_t val) |
static float | bitsToFloat (uint32_t val) |
GEM5_DEPRECATED_NAMESPACE (DecodeCache, decode_cache) | |
static void | onKickSignal (int signo, siginfo_t *si, void *data) |
Dummy handler for KVM kick signals. More... | |
static pid_t | sysGettid () |
GEM5_DEPRECATED_NAMESPACE (Minor, minor) | |
constexpr RegClass | invalidRegClass (InvalidRegClass, "invalid", 0, debug::InvalidReg) |
std::ostream & | operator<< (std::ostream &os, const RegId &rid) |
void | change_thread_state (ThreadID tid, int activate, int priority) |
Changes the status and priority of the thread with the given number. More... | |
std::ostream & | operator<< (std::ostream &out, const Check &obj) |
std::ostream & | operator<< (std::ostream &out, const CheckTable &obj) |
std::ostream & | operator<< (std::ostream &out, const RubyTester &obj) |
void | pybind_init_tracers (py::module_ &m_native) |
void | takeOverFrom (ThreadContext &new_tc, ThreadContext &old_tc) |
Copy state between thread contexts in preparation for CPU handover. More... | |
Addr | addrBlockOffset (Addr addr, Addr block_size) |
Calculates the offset of a given address wrt aligned fixed-size blocks. More... | |
Addr | addrBlockAlign (Addr addr, Addr block_size) |
Returns the address of the closest aligned fixed-size block to the given address. More... | |
bool | transferNeedsBurst (Addr addr, unsigned int size, unsigned int block_size) |
Returns true if the given memory access (address, size) needs to be fragmented across aligned fixed-size blocks. More... | |
bool | isAnyActiveElement (const std::vector< bool >::const_iterator &it_start, const std::vector< bool >::const_iterator &it_end) |
Test if there is any active element in an enablement range. More... | |
GEM5_DEPRECATED_NAMESPACE (SCMI, scmi) | |
static uint8_t | bcdize (uint8_t val) |
static uint8_t | unbcdize (uint8_t val) |
GEM5_DEPRECATED_NAMESPACE (iGbReg, igbreg) | |
static int | SPDSTS_POLARITY (int lnksts) |
GEM5_DEPRECATED_NAMESPACE (Sinic, sinic) | |
GEM5_DEPRECATED_NAMESPACE (CopyEngineReg, copy_engine_reg) | |
GEM5_DEPRECATED_NAMESPACE (Ps2, ps2) | |
void | SafeRead (std::ifstream &stream, void *data, int count) |
template<class T > | |
void | SafeRead (std::ifstream &stream, T &data) |
template<class T > | |
void | SafeReadSwap (std::ifstream &stream, T &data) |
void | SafeWrite (std::ofstream &stream, const void *data, int count) |
template<class T > | |
void | SafeWrite (std::ofstream &stream, const T &data) |
template<class T > | |
void | SafeWriteSwap (std::ofstream &stream, const T &data) |
template<typename T > | |
T | p9toh (T v) |
Convert p9 byte order (LE) to host byte order. More... | |
template<typename T > | |
T | htop9 (T v) |
Convert host byte order to p9 byte order (LE) More... | |
template<> | |
P9MsgHeader | p9toh (P9MsgHeader v) |
template<> | |
P9MsgHeader | htop9 (P9MsgHeader v) |
GEM5_DEPRECATED_NAMESPACE (Prefetcher, prefetch) | |
GEM5_DEPRECATED_NAMESPACE (Compressor, compression) | |
static void | replaceUpgrade (PacketPtr pkt) |
GEM5_DEPRECATED_NAMESPACE (ReplacementPolicy, replacement_policy) | |
void | printSize (std::ostream &stream, size_t size) |
std::string | htmFailureToStr (HtmFailureFaultCause cause) |
Convert enum into string to be used for debug purposes. More... | |
std::string | htmFailureToStr (HtmCacheFailure rc) |
Convert enum into string to be used for debug purposes. More... | |
GEM5_DEPRECATED_NAMESPACE (ContextSwitchTaskId, context_switch_task_id) | |
Special TaskIds that are used for per-context-switch stats dumps and Cache Occupancy. More... | |
std::ostream & | operator<< (std::ostream &os, const TranslationGen::Range &range) |
static void | init_drain (py::module_ &m_native) |
static void | init_serialize (py::module_ &m_native) |
static void | init_range (py::module_ &m_native) |
static void | init_net (py::module_ &m_native) |
static void | init_loader (py::module_ &m_native) |
void | pybind_init_core (py::module_ &m_native) |
static void | output (const char *filename) |
static void | ignore (const char *expr) |
void | pybind_init_debug (py::module_ &m_native) |
void | pybind_init_event (py::module_ &m_native) |
void | pybind_init_core (pybind11::module_ &m_native) |
void | pybind_init_debug (pybind11::module_ &m_native) |
void | pybind_init_event (pybind11::module_ &m_native) |
void | pybind_init_stats (pybind11::module_ &m_native) |
static const py::object | cast_stat_info (const statistics::Info *info) |
void | pybind_init_stats (py::module_ &m_native) |
void | print_backtrace () |
Print a gem5 post-mortem report. More... | |
std::pair< std::uint64_t, bool > | getUintX (const void *buf, std::size_t bytes, ByteOrder endian) |
bool | setUintX (std::uint64_t val, void *buf, std::size_t bytes, ByteOrder endian) |
std::pair< std::string, bool > | printUintX (const void *buf, std::size_t bytes, ByteOrder endian) |
std::string | printByteBuf (const void *buf, std::size_t bytes, ByteOrder endian, std::size_t chunk_size) |
uint64_t | swap_byte64 (uint64_t x) |
uint32_t | swap_byte32 (uint32_t x) |
uint16_t | swap_byte16 (uint16_t x) |
template<typename T > | |
std::enable_if_t< sizeof(T)==8 &&std::is_convertible_v< T, uint64_t >, T > | swap_byte (T x) |
template<typename T > | |
std::enable_if_t< sizeof(T)==4 &&std::is_convertible_v< T, uint32_t >, T > | swap_byte (T x) |
template<typename T > | |
std::enable_if_t< sizeof(T)==2 &&std::is_convertible_v< T, uint16_t >, T > | swap_byte (T x) |
template<typename T > | |
std::enable_if_t< sizeof(T)==1 &&std::is_convertible_v< T, uint8_t >, T > | swap_byte (T x) |
template<typename T , size_t N> | |
std::array< T, N > | swap_byte (std::array< T, N > a) |
template<typename T > | |
T | betole (T value) |
template<typename T > | |
T | letobe (T value) |
template<typename T > | |
T | htole (T value) |
template<typename T > | |
T | letoh (T value) |
template<typename T > | |
T | htobe (T value) |
template<typename T > | |
T | betoh (T value) |
template<typename T > | |
T | htog (T value, ByteOrder guest_byte_order) |
template<typename T > | |
T | gtoh (T value, ByteOrder guest_byte_order) |
void | fixClockFrequency () |
bool | clockFrequencyFixed () |
void | setClockFrequency (Tick tps) |
Tick | getClockFrequency () |
void | setOutputDir (const std::string &dir) |
CallbackQueue & | exitCallbacks () |
Queue of C++ callbacks to invoke on simulator exit. More... | |
void | registerExitCallback (const std::function< void()> &callback) |
Register an exit callback. More... | |
void | doExitCleanup () |
Do C++ simulator exit processing. More... | |
Tick | curTick () |
The universal simulation clock. More... | |
std::map< std::string, CxxConfigDirectoryEntry * > & | cxxConfigDirectory () |
Directory of all SimObject classes config details. More... | |
static std::string | formatParamList (const std::vector< std::string > ¶m_values) |
void | schedBreak (Tick when) |
Cause the simulator to execute a breakpoint. More... | |
void | schedRelBreak (Tick delta) |
Cause the simulator to execute a breakpoint relative to the current tick. More... | |
void | takeCheckpoint (Tick when) |
Function to cause the simulator to take a checkpoint from the debugger. More... | |
void | eventqDump () |
Dump all the events currently on the event queue. More... | |
EventQueue * | getEventQueue (uint32_t index) |
Function for returning eventq queue for the provided index. More... | |
void | dumpMainQueue () |
EventQueue * | curEventQueue () |
void | curEventQueue (EventQueue *q) |
bool | operator< (const Event &l, const Event &r) |
bool | operator> (const Event &l, const Event &r) |
bool | operator<= (const Event &l, const Event &r) |
bool | operator>= (const Event &l, const Event &r) |
bool | operator== (const Event &l, const Event &r) |
bool | operator!= (const Event &l, const Event &r) |
template<typename ABI , bool store_ret, typename Ret , typename ... Args> | |
Ret | invokeSimcall (ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target) |
template<typename ABI , typename Ret , typename ... Args> | |
Ret | invokeSimcall (ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target) |
template<typename ABI , bool store_ret, typename Ret , typename ... Args> | |
Ret | invokeSimcall (ThreadContext *tc, Ret(*target)(ThreadContext *, Args...)) |
template<typename ABI , typename Ret , typename ... Args> | |
Ret | invokeSimcall (ThreadContext *tc, Ret(*target)(ThreadContext *, Args...)) |
template<typename ABI , typename ... Args> | |
void | invokeSimcall (ThreadContext *tc, std::function< void(ThreadContext *, Args...)> target) |
template<typename ABI , typename ... Args> | |
void | invokeSimcall (ThreadContext *tc, void(*target)(ThreadContext *, Args...)) |
template<typename ABI , typename Ret , typename ... Args> | |
std::string | dumpSimcall (std::string name, ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target=std::function< Ret(ThreadContext *, Args...)>()) |
template<typename ABI , typename Ret , typename ... Args> | |
std::string | dumpSimcall (std::string name, ThreadContext *tc, Ret(*target)(ThreadContext *, Args...)) |
static bool | setupAltStack () |
static void | installSignalHandler (int signal, void(*handler)(int sigtype), int flags=SA_RESTART) |
static void | raiseFatalSignal (int signo) |
void | dumpStatsHandler (int sigtype) |
Stats signal handler. More... | |
void | dumprstStatsHandler (int sigtype) |
void | exitNowHandler (int sigtype) |
Exit signal handler. More... | |
void | abortHandler (int sigtype) |
Abort signal handler. More... | |
static void | segvHandler (int sigtype) |
Segmentation fault signal handler. More... | |
static void | ioHandler (int sigtype) |
void | initSignals () |
static std::ostream & | operator<< (std::ostream &os, const Port &port) |
GEM5_DEPRECATED_NAMESPACE (ProbePoints, probing) | |
Name space containing shared probe point declarations. More... | |
static std::string | normalize (const std::string &directory) |
template<class AddrType > | |
void | copyStringArray (std::vector< std::string > &strings, AddrType array_ptr, AddrType data_ptr, const ByteOrder bo, PortProxy &memProxy) |
template<typename T , typename Proxy , typename A > | |
std::enable_if_t< std::is_integral_v< A >, ConstProxyPtr< T, Proxy > > | operator+ (A a, const ConstProxyPtr< T, Proxy > &other) |
template<typename T , typename Proxy , typename A > | |
std::enable_if_t< std::is_integral_v< A >, ProxyPtr< T, Proxy > > | operator+ (A a, const ProxyPtr< T, Proxy > &other) |
template<typename T , typename Proxy > | |
std::ostream & | operator<< (std::ostream &os, const ConstProxyPtr< T, Proxy > &vptr) |
GEM5_DEPRECATED_NAMESPACE (PseudoInst, pseudo_inst) | |
void | py_interact () |
static std::string | normalizePath (std::string path) |
template<class T > | |
void | paramOut (CheckpointOut &os, const std::string &name, const T ¶m) |
This function is used for writing parameters to a checkpoint. More... | |
template<class T > | |
bool | paramInImpl (CheckpointIn &cp, const std::string &name, T ¶m) |
template<class T > | |
bool | optParamIn (CheckpointIn &cp, const std::string &name, T ¶m, bool do_warn=true) |
This function is used for restoring optional parameters from the checkpoint. More... | |
template<class T > | |
void | paramIn (CheckpointIn &cp, const std::string &name, T ¶m) |
This function is used for restoring parameters from a checkpoint. More... | |
template<class InputIterator > | |
void | arrayParamOut (CheckpointOut &os, const std::string &name, InputIterator start, InputIterator end) |
template<class T > | |
void | arrayParamOut (CheckpointOut &os, const std::string &name, const T *param, unsigned size) |
template<class T , class InsertIterator > | |
void | arrayParamIn (CheckpointIn &cp, const std::string &name, InsertIterator inserter, ssize_t fixed_size=-1) |
Extract values stored in the checkpoint, and assign them to the provided array container. More... | |
template<class T > | |
decltype(std::declval< T >().insert(std::declval< typename T::value_type >()), void()) | arrayParamIn (CheckpointIn &cp, const std::string &name, T ¶m) |
template<class T > | |
decltype(std::declval< T >().push_back(std::declval< typename T::value_type >()), void()) | arrayParamIn (CheckpointIn &cp, const std::string &name, T ¶m) |
template<class T > | |
void | arrayParamIn (CheckpointIn &cp, const std::string &name, T *param, unsigned size) |
template<class T > | |
void | mappingParamOut (CheckpointOut &os, const char *sectionName, const char *const names[], const T *param, unsigned size) |
Serialize a mapping represented as two arrays: one containing names and the other containing values. More... | |
template<class T > | |
void | mappingParamIn (CheckpointIn &cp, const char *sectionName, const char *const names[], T *param, unsigned size) |
Restore mappingParamOut. More... | |
void | exitSimLoop (const std::string &message, int exit_code=0, Tick when=curTick(), Tick repeat=0, bool serialize=false) |
Schedule an event to exit the simulation loop (returning to Python) at the end of the current cycle (curTick()). More... | |
void | exitSimLoopNow (const std::string &message, int exit_code=0, Tick repeat=0, bool serialize=false) |
Schedule an event as above, but make it high priority so it runs before any normal events which are schedule at the current time. More... | |
void | objParamIn (CheckpointIn &cp, const std::string &name, SimObject *¶m) |
To avoid circular dependencies the unserialization of SimObjects must be implemented here. More... | |
void | debug_serialize (const std::string &cpt_dir) |
Event * | doSimLoop (EventQueue *) |
forward declaration More... | |
GlobalSimLoopExitEvent * | simulate (Tick num_cycles) |
Simulate for num_cycles additional cycles. More... | |
void | set_max_tick (Tick tick) |
Set the maximum tick. More... | |
Tick | get_max_tick () |
Get the maximum simulation tick. More... | |
void | terminateEventQueueThreads () |
Terminate helper threads when running in parallel mode. More... | |
static bool | testAndClearAsyncEvent () |
Test and clear the global async_event flag, such that each time the flag is cleared, only one thread returns true (and thus is assigned to handle the corresponding async event(s)). More... | |
SyscallReturn | unimplementedFunc (SyscallDesc *desc, ThreadContext *tc) |
Handler for unimplemented syscalls that we haven't thought about. More... | |
void | warnUnsupportedOS (std::string syscall_name) |
SyscallReturn | ignoreFunc (SyscallDesc *desc, ThreadContext *tc) |
Handler for unimplemented syscalls that we never intend to implement (signal handling, etc.) and should not affect the correct behavior of the program. More... | |
SyscallReturn | ignoreWarnOnceFunc (SyscallDesc *desc, ThreadContext *tc) |
Like above, but only prints a warning once per syscall desc it's used with. More... | |
static void | exitFutexWake (ThreadContext *tc, VPtr<> addr, uint64_t tgid) |
static SyscallReturn | exitImpl (SyscallDesc *desc, ThreadContext *tc, bool group, int status) |
SyscallReturn | exitFunc (SyscallDesc *desc, ThreadContext *tc, int status) |
Target exit() handler: terminate current context. More... | |
SyscallReturn | exitGroupFunc (SyscallDesc *desc, ThreadContext *tc, int status) |
Target exit_group() handler: terminate simulation. (exit all threads) More... | |
SyscallReturn | getpagesizeFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getpagesize() handler. More... | |
SyscallReturn | brkFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> new_brk) |
Target brk() handler: set brk address. More... | |
SyscallReturn | setTidAddressFunc (SyscallDesc *desc, ThreadContext *tc, uint64_t tidPtr) |
Target set_tid_address() handler. More... | |
SyscallReturn | closeFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd) |
Target close() handler. More... | |
SyscallReturn | lseekFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint64_t offs, int whence) |
Target lseek() handler. More... | |
SyscallReturn | _llseekFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint64_t offset_high, uint32_t offset_low, VPtr<> result_ptr, int whence) |
Target _llseek() handler. More... | |
SyscallReturn | gethostnameFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> buf_ptr, int name_len) |
Target gethostname() handler. More... | |
SyscallReturn | getcwdFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> buf_ptr, unsigned long size) |
Target getcwd() handler. More... | |
SyscallReturn | unlinkFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname) |
Target unlink() handler. More... | |
SyscallReturn | unlinkImpl (SyscallDesc *desc, ThreadContext *tc, std::string path) |
SyscallReturn | linkFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> new_pathname) |
Target link() handler. More... | |
SyscallReturn | symlinkFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> new_pathname) |
Target symlink() handler. More... | |
SyscallReturn | mkdirFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode) |
Target mkdir() handler. More... | |
SyscallReturn | mkdirImpl (SyscallDesc *desc, ThreadContext *tc, std::string path, mode_t mode) |
SyscallReturn | renameFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> oldpath, VPtr<> newpath) |
Target rename() handler. More... | |
SyscallReturn | renameImpl (SyscallDesc *desc, ThreadContext *tc, std::string old_name, std::string new_name) |
SyscallReturn | truncate64Func (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, int64_t length) |
Target truncate64() handler. More... | |
SyscallReturn | ftruncate64Func (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int64_t length) |
Target ftruncate64() handler. More... | |
SyscallReturn | umaskFunc (SyscallDesc *desc, ThreadContext *tc) |
Target umask() handler. More... | |
SyscallReturn | chownFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, uint32_t owner, uint32_t group) |
Target chown() handler. More... | |
SyscallReturn | chownImpl (SyscallDesc *desc, ThreadContext *tc, std::string path, uint32_t owner, uint32_t group) |
SyscallReturn | fchownFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint32_t owner, uint32_t group) |
Target fchown() handler. More... | |
SyscallReturn | dupFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd) |
FIXME: The file description is not shared among file descriptors created with dup. More... | |
SyscallReturn | dup2Func (SyscallDesc *desc, ThreadContext *tc, int old_tgt_fd, int new_tgt_fd) |
Target dup2() handler. More... | |
SyscallReturn | fcntlFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int cmd, guest_abi::VarArgs< int > varargs) |
Target fcntl() handler. More... | |
SyscallReturn | fcntl64Func (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int cmd) |
Target fcntl64() handler. More... | |
SyscallReturn | pipePseudoFunc (SyscallDesc *desc, ThreadContext *tc) |
Pseudo Funcs - These functions use a different return convension, returning a second value in a register other than the normal return register. More... | |
SyscallReturn | pipeFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> tgt_addr) |
Target pipe() handler. More... | |
SyscallReturn | pipe2Func (SyscallDesc *desc, ThreadContext *tc, VPtr<> tgt_addr, int flags) |
Target pipe() handler. More... | |
SyscallReturn | getpgrpFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getpgrpFunc() handler. More... | |
SyscallReturn | setpgidFunc (SyscallDesc *desc, ThreadContext *tc, int pid, int pgid) |
Target setpgid() handler. More... | |
SyscallReturn | getpidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getpid() handler. More... | |
SyscallReturn | gettidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target gettid() handler. More... | |
SyscallReturn | getppidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getppid() handler. More... | |
SyscallReturn | getuidFunc (SyscallDesc *desc, ThreadContext *tc) |
SyscallReturn | geteuidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target geteuid() handler. More... | |
SyscallReturn | getgidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getgid() handler. More... | |
SyscallReturn | getegidFunc (SyscallDesc *desc, ThreadContext *tc) |
Target getegid() handler. More... | |
SyscallReturn | accessFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode) |
Target access() handler. More... | |
SyscallReturn | accessImpl (SyscallDesc *desc, ThreadContext *tc, std::string path, mode_t mode) |
SyscallReturn | mknodFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode, dev_t dev) |
Target mknod() handler. More... | |
SyscallReturn | mknodImpl (SyscallDesc *desc, ThreadContext *tc, std::string path, mode_t mode, dev_t dev) |
SyscallReturn | chdirFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname) |
Target chdir() handler. More... | |
SyscallReturn | rmdirFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname) |
SyscallReturn | rmdirImpl (SyscallDesc *desc, ThreadContext *tc, std::string path) |
SyscallReturn | shutdownFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int how) |
Target shutdown() handler. More... | |
SyscallReturn | bindFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, int addrlen) |
SyscallReturn | listenFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int backlog) |
SyscallReturn | connectFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, int addrlen) |
SyscallReturn | recvmsgFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> msgPtr, int flags) |
SyscallReturn | sendmsgFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> msgPtr, int flags) |
SyscallReturn | getsockoptFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int level, int optname, VPtr<> valPtr, VPtr<> lenPtr) |
SyscallReturn | getsocknameFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> addrPtr, VPtr<> lenPtr) |
SyscallReturn | getpeernameFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> sockAddrPtr, VPtr<> addrlenPtr) |
SyscallReturn | setsockoptFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int level, int optname, VPtr<> valPtr, socklen_t len) |
SyscallReturn | getcpuFunc (SyscallDesc *desc, ThreadContext *tc, VPtr< uint32_t > cpu, VPtr< uint32_t > node, VPtr< uint32_t > tcache) |
template<class OS > | |
SyscallReturn | atSyscallPath (ThreadContext *tc, int dirfd, std::string &path) |
template<class OS > | |
SyscallReturn | futexFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> uaddr, int op, int val, int timeout, VPtr<> uaddr2, int val3) |
Futex system call Implemented by Daniel Sanchez Used by printf's in multi-threaded apps. More... | |
template<class T1 , class T2 > | |
void | getElapsedTimeMicro (T1 &sec, T2 &usec) |
Helper function to convert current elapsed time to seconds and microseconds. More... | |
template<class T1 , class T2 > | |
void | getElapsedTimeNano (T1 &sec, T2 &nsec) |
Helper function to convert current elapsed time to seconds and nanoseconds. More... | |
template<typename OS , typename TgtStatPtr , typename HostStatPtr > | |
void | copyOutStatBuf (TgtStatPtr tgt, HostStatPtr host, bool fakeTTY=false) |
template<typename OS , typename TgtStatPtr , typename HostStatPtr > | |
void | copyOutStat64Buf (TgtStatPtr tgt, HostStatPtr host, bool fakeTTY=false) |
template<class OS , typename TgtStatPtr , typename HostStatPtr > | |
void | copyOutStatfsBuf (TgtStatPtr tgt, HostStatPtr host) |
template<class OS > | |
SyscallReturn | ioctlFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, unsigned req, VPtr<> addr) |
Target ioctl() handler. More... | |
template<class OS > | |
SyscallReturn | openatFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_dirfd, VPtr<> pathname, int tgt_flags, int mode) |
Target open() handler. More... | |
template<class OS > | |
SyscallReturn | openFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, int tgt_flags, int mode) |
Target open() handler. More... | |
template<class OS > | |
SyscallReturn | unlinkatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, int flags) |
Target unlinkat() handler. More... | |
template<class OS > | |
SyscallReturn | faccessatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, int mode) |
Target facessat() handler. More... | |
template<class OS > | |
SyscallReturn | readlinkatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, VPtr<> buf_ptr, typename OS::size_t bufsiz) |
Target readlinkat() handler. More... | |
template<class OS > | |
SyscallReturn | readlinkFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> buf_ptr, typename OS::size_t bufsiz) |
Target readlink() handler. More... | |
template<class OS > | |
SyscallReturn | renameatFunc (SyscallDesc *desc, ThreadContext *tc, int olddirfd, VPtr<> oldpath, int newdirfd, VPtr<> newpath) |
Target renameat() handler. More... | |
template<class OS > | |
SyscallReturn | fchownatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, uint32_t owner, uint32_t group, int flags) |
Target fchownat() handler. More... | |
template<class OS > | |
SyscallReturn | mkdiratFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, mode_t mode) |
Target mkdirat() handler. More... | |
template<class OS > | |
SyscallReturn | mknodatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, mode_t mode, dev_t dev) |
Target mknodat() handler. More... | |
template<class OS > | |
SyscallReturn | sysinfoFunc (SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::tgt_sysinfo > sysinfo) |
Target sysinfo() handler. More... | |
template<class OS > | |
SyscallReturn | fchmodatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, mode_t mode) |
Target chmod() handler. More... | |
template<class OS > | |
SyscallReturn | chmodFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode) |
Target chmod() handler. More... | |
template<class OS > | |
SyscallReturn | pollFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> fdsPtr, int nfds, int tmout) |
template<class OS > | |
SyscallReturn | fchmodFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint32_t mode) |
Target fchmod() handler. More... | |
template<class OS > | |
SyscallReturn | mremapFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> start, uint64_t old_length, uint64_t new_length, uint64_t flags, guest_abi::VarArgs< uint64_t > varargs) |
Target mremap() handler. More... | |
template<class OS > | |
SyscallReturn | statFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_stat > tgt_stat) |
Target stat() handler. More... | |
template<class OS > | |
SyscallReturn | newfstatatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, VPtr< typename OS::tgt_stat > tgt_stat, int flags) |
Target newfstatat() handler. More... | |
template<class OS > | |
SyscallReturn | fstatat64Func (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, VPtr< typename OS::tgt_stat64 > tgt_stat) |
Target fstatat64() handler. More... | |
template<class OS > | |
SyscallReturn | stat64Func (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_stat64 > tgt_stat) |
Target stat64() handler. More... | |
template<class OS > | |
SyscallReturn | fstat64Func (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr< typename OS::tgt_stat64 > tgt_stat) |
Target fstat64() handler. More... | |
template<class OS > | |
SyscallReturn | lstatFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_stat > tgt_stat) |
Target lstat() handler. More... | |
template<class OS > | |
SyscallReturn | lstat64Func (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_stat64 > tgt_stat) |
Target lstat64() handler. More... | |
template<class OS > | |
SyscallReturn | fstatFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr< typename OS::tgt_stat > tgt_stat) |
Target fstat() handler. More... | |
template<class OS > | |
SyscallReturn | statfsFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_statfs > tgt_stat) |
Target statfs() handler. More... | |
template<class OS > | |
SyscallReturn | doClone (SyscallDesc *desc, ThreadContext *tc, RegVal flags, RegVal newStack, VPtr<> ptidPtr, VPtr<> ctidPtr, VPtr<> tlsPtr) |
template<class OS > | |
SyscallReturn | clone3Func (SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::tgt_clone_args > cl_args, RegVal size) |
template<class OS > | |
SyscallReturn | cloneFunc (SyscallDesc *desc, ThreadContext *tc, RegVal flags, RegVal newStack, VPtr<> ptidPtr, VPtr<> ctidPtr, VPtr<> tlsPtr) |
template<class OS > | |
SyscallReturn | cloneBackwardsFunc (SyscallDesc *desc, ThreadContext *tc, RegVal flags, RegVal newStack, VPtr<> ptidPtr, VPtr<> tlsPtr, VPtr<> ctidPtr) |
template<class OS > | |
SyscallReturn | fstatfsFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr< typename OS::tgt_statfs > tgt_stat) |
Target fstatfs() handler. More... | |
template<class OS > | |
SyscallReturn | readvFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint64_t tiov_base, typename OS::size_t count) |
Target readv() handler. More... | |
template<class OS > | |
SyscallReturn | writevFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint64_t tiov_base, typename OS::size_t count) |
Target writev() handler. More... | |
template<class OS > | |
SyscallReturn | mmapFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> start, typename OS::size_t length, int prot, int tgt_flags, int tgt_fd, typename OS::off_t offset) |
Target mmap() handler. More... | |
template<class OS > | |
SyscallReturn | pread64Func (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> bufPtr, int nbytes, int offset) |
template<class OS > | |
SyscallReturn | pwrite64Func (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> bufPtr, int nbytes, int offset) |
template<class OS > | |
SyscallReturn | mmap2Func (SyscallDesc *desc, ThreadContext *tc, VPtr<> start, typename OS::size_t length, int prot, int tgt_flags, int tgt_fd, typename OS::off_t offset) |
Target mmap2() handler. More... | |
template<class OS > | |
SyscallReturn | getrlimitFunc (SyscallDesc *desc, ThreadContext *tc, unsigned resource, VPtr< typename OS::rlimit > rlp) |
Target getrlimit() handler. More... | |
template<class OS > | |
SyscallReturn | prlimitFunc (SyscallDesc *desc, ThreadContext *tc, int pid, int resource, VPtr<> n, VPtr< typename OS::rlimit > rlp) |
template<class OS > | |
SyscallReturn | clock_gettimeFunc (SyscallDesc *desc, ThreadContext *tc, int clk_id, VPtr< typename OS::timespec > tp) |
Target clock_gettime() function. More... | |
template<class OS > | |
SyscallReturn | clock_getresFunc (SyscallDesc *desc, ThreadContext *tc, int clk_id, VPtr< typename OS::timespec > tp) |
Target clock_getres() function. More... | |
template<class OS > | |
SyscallReturn | gettimeofdayFunc (SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::timeval > tp, VPtr<> tz_ptr) |
Target gettimeofday() handler. More... | |
template<class OS > | |
SyscallReturn | futimesatFunc (SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, VPtr< typename OS::timeval[2]> tp) |
Target futimesat() handler. More... | |
template<class OS > | |
SyscallReturn | utimesFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::timeval[2]> tp) |
Target utimes() handler. More... | |
template<class OS > | |
SyscallReturn | execveFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> argv_mem_loc, VPtr<> envp_mem_loc) |
template<class OS > | |
SyscallReturn | getrusageFunc (SyscallDesc *desc, ThreadContext *tc, int who, VPtr< typename OS::rusage > rup) |
Target getrusage() function. More... | |
template<class OS > | |
SyscallReturn | timesFunc (SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::tms > bufp) |
Target times() function. More... | |
template<class OS > | |
SyscallReturn | timeFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> taddr) |
Target time() function. More... | |
template<class OS > | |
SyscallReturn | tgkillFunc (SyscallDesc *desc, ThreadContext *tc, int tgid, int tid, int sig) |
template<class OS > | |
SyscallReturn | socketFunc (SyscallDesc *desc, ThreadContext *tc, int domain, int type, int prot) |
template<class OS > | |
SyscallReturn | socketpairFunc (SyscallDesc *desc, ThreadContext *tc, int domain, int type, int prot, VPtr<> svPtr) |
template<class OS > | |
SyscallReturn | selectFunc (SyscallDesc *desc, ThreadContext *tc, int nfds, VPtr< typename OS::fd_set > readfds, VPtr< typename OS::fd_set > writefds, VPtr< typename OS::fd_set > errorfds, VPtr< typename OS::timeval > timeout) |
template<class OS > | |
SyscallReturn | readFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, int nbytes) |
template<class OS > | |
SyscallReturn | writeFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, int nbytes) |
template<class OS > | |
SyscallReturn | wait4Func (SyscallDesc *desc, ThreadContext *tc, pid_t pid, VPtr<> statPtr, int options, VPtr<> rusagePtr) |
template<class OS > | |
SyscallReturn | acceptFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> addrPtr, VPtr<> lenPtr) |
template<class OS > | |
SyscallReturn | eventfdFunc (SyscallDesc *desc, ThreadContext *tc, unsigned initval, int in_flags) |
Target eventfd() function. More... | |
template<class OS > | |
SyscallReturn | schedGetaffinityFunc (SyscallDesc *desc, ThreadContext *tc, pid_t pid, typename OS::size_t cpusetsize, VPtr<> cpu_set_mask) |
Target sched_getaffinity. More... | |
template<class OS > | |
SyscallReturn | recvfromFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, typename OS::size_t buf_len, int flags, VPtr<> addr_ptr, VPtr<> addrlen_ptr) |
template<typename OS > | |
SyscallReturn | sendtoFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, typename OS::size_t buf_len, int flags, VPtr<> addr_ptr, socklen_t addr_len) |
template<typename OS > | |
SyscallReturn | munmapFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> start, typename OS::size_t length) |
Target munmap() handler. More... | |
template<typename OS > | |
SyscallReturn | fallocateFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int mode, typename OS::off_t offset, typename OS::off_t len) |
template<typename OS > | |
SyscallReturn | truncateFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, typename OS::off_t length) |
Target truncate() handler. More... | |
template<typename OS > | |
SyscallReturn | ftruncateFunc (SyscallDesc *desc, ThreadContext *tc, int tgt_fd, typename OS::off_t length) |
Target ftruncate() handler. More... | |
template<typename OS > | |
SyscallReturn | getrandomFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> buf_ptr, typename OS::size_t count, unsigned int flags) |
void | printSystems () |
static std::ostream & | operator<< (std::ostream &os, const DummyVecPredRegContainer &d) |
static std::ostream & | operator<< (std::ostream &os, const DummyVecRegContainer &d) |
String to number helper functions for signed and unsigned | |
integeral type, as well as enums and floating-point types. | |
template<class T > | |
std::enable_if_t< std::is_integral_v< T >, T > | __to_number (const std::string &value) |
template<class T > | |
std::enable_if_t< std::is_enum_v< T >, T > | __to_number (const std::string &value) |
template<class T > | |
std::enable_if_t< std::is_floating_point_v< T >, T > | __to_number (const std::string &value) |
void | serialize (const ThreadContext &tc, CheckpointOut &cp) |
Thread context serialization helpers. More... | |
void | unserialize (ThreadContext &tc, CheckpointIn &cp) |
VirtIO endian conversion helpers | |
VirtIO prior to version 1.0 (legacy versions) normally send values to the host in the guest systems native byte order. This is going to change in version 1.0 which mandates little endian. We currently only support the legacy version of VirtIO (the new and shiny standard is still in a draft state and not implemented by the kernel). Once we support the new standard, we should negotiate the VirtIO version with the guest and automatically use the right type of byte swapping. | |
template<typename T > | |
std::enable_if_t< std::is_same_v< T, vring_used_elem >, T > | swap_byte (T v) |
template<typename T > | |
std::enable_if_t< std::is_same_v< T, vring_desc >, T > | swap_byte (T v) |
GEM5_DEPRECATED_NAMESPACE (SimClock, sim_clock) | |
These are variables that are set based on the simulator frequency. More... | |
Variables | |
static const int | ROW_SIZE = 16 |
static const int | NUM_BANKS = 4 |
static const int | ROW_SIZE = 16 |
static const int | NUM_BANKS = 4 |
static uint64_t | invariant_reg_vector [] |
constexpr static unsigned | NUM_XREGS = int_reg::NumArchRegs - 1 |
constexpr static unsigned | NUM_QREGS = NumVecV8ArchRegs |
constexpr unsigned | MaxVecRegLenInBytes = 1ULL << 16 |
const uint8_t | reverseBitsLookUpTable [] |
Lookup table used for High Speed bit reversing. More... | |
const char * | compileDate = __DATE__ " " __TIME__ |
static const int | roundOps [] |
thread_local GTestLogOutput | gtestLogOutput |
c2 = 31 | |
high = AB + c2 | |
const uint8_t | image_file [] |
This image file contains the text "This is a test image.\n" 31 times. More... | |
const uint8_t | image_file_gzipped [] |
This is "image_file" compressed using GZip. More... | |
OutputDirectory | simout |
PollQueue | pollQueue |
Random | random_mt |
static const char | GDBStart = '$' |
static const char | GDBEnd = '#' |
static const char | GDBGoodP = '+' |
static const char | GDBBadP = '-' |
const Tick | MaxTick = 0xffffffffffffffffULL |
static const MicroPC | MicroPCRomBit = 1 << (sizeof(MicroPC) * 8 - 1) |
const Addr | MaxAddr = (Addr)-1 |
const ThreadID | InvalidThreadID = (ThreadID)-1 |
const ContextID | InvalidContextID = (ContextID)-1 |
const PortID | InvalidPortID = (PortID)-1 |
constexpr decltype(nullptr) | NoFault = nullptr |
const char * | gem5Version = "22.1.0.0" |
int | maxThreadsPerCPU = 1 |
The maximum number of active threads across all cpus. More... | |
static const uint64_t | MIN_HOST_CYCLES = 1000 |
Minimum number of cycles that a host can spend in a KVM call (used to calculate the resolution of some timers). More... | |
StaticInstPtr | nopStaticInstPtr = new NopStaticInst |
Pointer to a statically allocated generic "nop" instruction object. More... | |
const StaticInstPtr | nullStaticInstPtr |
Statically allocated null StaticInstPtr. More... | |
static const OpClass | IntAluOp = enums::IntAlu |
static const OpClass | IntMultOp = enums::IntMult |
static const OpClass | IntDivOp = enums::IntDiv |
static const OpClass | FloatAddOp = enums::FloatAdd |
static const OpClass | FloatCmpOp = enums::FloatCmp |
static const OpClass | FloatCvtOp = enums::FloatCvt |
static const OpClass | FloatMultOp = enums::FloatMult |
static const OpClass | FloatMultAccOp = enums::FloatMultAcc |
static const OpClass | FloatDivOp = enums::FloatDiv |
static const OpClass | FloatMiscOp = enums::FloatMisc |
static const OpClass | FloatSqrtOp = enums::FloatSqrt |
static const OpClass | SimdAddOp = enums::SimdAdd |
static const OpClass | SimdAddAccOp = enums::SimdAddAcc |
static const OpClass | SimdAluOp = enums::SimdAlu |
static const OpClass | SimdCmpOp = enums::SimdCmp |
static const OpClass | SimdCvtOp = enums::SimdCvt |
static const OpClass | SimdMiscOp = enums::SimdMisc |
static const OpClass | SimdMultOp = enums::SimdMult |
static const OpClass | SimdMultAccOp = enums::SimdMultAcc |
static const OpClass | SimdShiftOp = enums::SimdShift |
static const OpClass | SimdShiftAccOp = enums::SimdShiftAcc |
static const OpClass | SimdDivOp = enums::SimdDiv |
static const OpClass | SimdSqrtOp = enums::SimdSqrt |
static const OpClass | SimdReduceAddOp = enums::SimdReduceAdd |
static const OpClass | SimdReduceAluOp = enums::SimdReduceAlu |
static const OpClass | SimdReduceCmpOp = enums::SimdReduceCmp |
static const OpClass | SimdFloatAddOp = enums::SimdFloatAdd |
static const OpClass | SimdFloatAluOp = enums::SimdFloatAlu |
static const OpClass | SimdFloatCmpOp = enums::SimdFloatCmp |
static const OpClass | SimdFloatCvtOp = enums::SimdFloatCvt |
static const OpClass | SimdFloatDivOp = enums::SimdFloatDiv |
static const OpClass | SimdFloatMiscOp = enums::SimdFloatMisc |
static const OpClass | SimdFloatMultOp = enums::SimdFloatMult |
static const OpClass | SimdFloatMultAccOp = enums::SimdFloatMultAcc |
static const OpClass | SimdFloatSqrtOp = enums::SimdFloatSqrt |
static const OpClass | SimdFloatReduceCmpOp = enums::SimdFloatReduceCmp |
static const OpClass | SimdFloatReduceAddOp = enums::SimdFloatReduceAdd |
static const OpClass | SimdAesOp = enums::SimdAes |
static const OpClass | SimdAesMixOp = enums::SimdAesMix |
static const OpClass | SimdSha1HashOp = enums::SimdSha1Hash |
static const OpClass | SimdSha1Hash2Op = enums::SimdSha1Hash2 |
static const OpClass | SimdSha256HashOp = enums::SimdSha256Hash |
static const OpClass | SimdSha256Hash2Op = enums::SimdSha256Hash2 |
static const OpClass | SimdShaSigma2Op = enums::SimdShaSigma2 |
static const OpClass | SimdShaSigma3Op = enums::SimdShaSigma3 |
static const OpClass | SimdPredAluOp = enums::SimdPredAlu |
static const OpClass | MemReadOp = enums::MemRead |
static const OpClass | MemWriteOp = enums::MemWrite |
static const OpClass | FloatMemReadOp = enums::FloatMemRead |
static const OpClass | FloatMemWriteOp = enums::FloatMemWrite |
static const OpClass | IprAccessOp = enums::IprAccess |
static const OpClass | InstPrefetchOp = enums::InstPrefetch |
static const OpClass | Num_OpClasses = enums::Num_OpClass |
constexpr char | IntRegClassName [] = "integer" |
constexpr char | FloatRegClassName [] = "floating_point" |
constexpr char | VecRegClassName [] = "vector" |
constexpr char | VecElemClassName [] = "vector_element" |
constexpr char | VecPredRegClassName [] = "vector_predicate" |
constexpr char | CCRegClassName [] = "condition_code" |
constexpr char | MiscRegClassName [] = "miscellaneous" |
int | TESTER_NETWORK =0 |
static unsigned int | TESTER_ALLOCATOR = 0 |
const int | CHECK_SIZE_BITS = 2 |
const int | CHECK_SIZE = (1 << CHECK_SIZE_BITS) |
static EmbeddedPyBind | _py_tracers ("trace", pybind_init_tracers) |
static constexpr int | AMDGPU_VM_COUNT = 16 |
constexpr int | FRAMEBUFFER_BAR = 0 |
constexpr int | DOORBELL_BAR = 2 |
constexpr int | MMIO_BAR = 5 |
constexpr uint32_t | VGA_ROM_DEFAULT = 0xc0000 |
constexpr uint32_t | ROM_SIZE = 0x20000 |
static constexpr uint32_t | SDMA0_BASE = 0x4980 |
static constexpr uint32_t | SDMA1_BASE = 0x5180 |
static constexpr uint32_t | SDMA_SIZE = 0x800 |
static constexpr uint32_t | SDMA_OFFSET_SHIFT = 2 |
static constexpr uint32_t | IH_BASE = 0x4280 |
static constexpr uint32_t | IH_SIZE = 0x700 |
static constexpr uint32_t | IH_OFFSET_SHIFT = 2 |
static constexpr uint32_t | GRBM_BASE = 0x8000 |
static constexpr uint32_t | GRBM_SIZE = 0x5000 |
static constexpr uint32_t | GRBM_OFFSET_SHIFT = 2 |
static constexpr uint32_t | GFX_BASE = 0x28000 |
static constexpr uint32_t | GFX_SIZE = 0x17000 |
static constexpr uint32_t | GFX_OFFSET_SHIFT = 2 |
static constexpr uint32_t | MMHUB_BASE = 0x68000 |
static constexpr uint32_t | MMHUB_SIZE = 0x2120 |
static constexpr uint32_t | MMHUB_OFFSET_SHIFT = 2 |
static constexpr uint32_t | NBIO_BASE = 0x0 |
static constexpr uint32_t | NBIO_SIZE = 0x4280 |
constexpr uint32_t | INTR_COOKIE_SIZE = 32 |
MSI-style interrupts. More... | |
constexpr unsigned int | SDMA_ATOMIC_ADD64 = 47 |
const uint64_t | AmbaVendor = 0xb105f00d00000000ULL |
static const std::map< enums::NoMaliGpuType, nomali_gpu_type_t > | gpuTypeMap |
const char * | NsRxStateStrings [] |
const char * | NsTxStateStrings [] |
const char * | NsDmaState [] |
const uint16_t | FHASH_ADDR = 0x100 |
const uint16_t | FHASH_SIZE = 0x100 |
const uint8_t | EEPROM_READ = 0x2 |
const uint8_t | EEPROM_SIZE = 64 |
const uint8_t | EEPROM_PMATCH2_ADDR = 0xA |
const uint8_t | EEPROM_PMATCH1_ADDR = 0xB |
const uint8_t | EEPROM_PMATCH0_ADDR = 0xC |
const int | RX_INT = 0x1 |
const int | TX_INT = 0x2 |
const uint8_t | UART_MCR_LOOP = 0x10 |
const int | MaxNiagaraProcs = 32 |
const Addr | IntManAddr = 0x0000 |
const Addr | IntManSize = 0x0020 |
const Addr | IntCtlAddr = 0x0400 |
const Addr | IntCtlSize = 0x0020 |
const Addr | JIntVecAddr = 0x0A00 |
const Addr | IntVecDisAddr = 0x0800 |
const Addr | IntVecDisSize = 0x0100 |
const Addr | JIntData0Addr = 0x0400 |
const Addr | JIntData1Addr = 0x0500 |
const Addr | JIntDataA0Addr = 0x0600 |
const Addr | JIntDataA1Addr = 0x0700 |
const Addr | JIntBusyAddr = 0x0900 |
const Addr | JIntBusySize = 0x0100 |
const Addr | JIntABusyAddr = 0x0B00 |
const uint64_t | IntManMask = 0x01F3F |
const uint64_t | IntCtlMask = 0x00006 |
const uint64_t | JIntVecMask = 0x0003F |
const uint64_t | IntVecDis = 0x31F3F |
const uint64_t | JIntBusyMask = 0x0003F |
static const P9MsgInfoMap | p9_msg_info |
const uint8_t | RamSize = 32 |
const uint8_t | NumOutputBits = 14 |
static const int | LDS_SIZE = 65536 |
Fault | dummyFault1 = std::make_shared<gem5::FaultBase>() |
Fault | dummyFault2 = std::make_shared<gem5::FaultBase>() |
PybindSimObjectResolver | pybindSimObjectResolver |
const ByteOrder | HostByteOrder = ByteOrder::big |
Tick | simQuantum = 0 |
Simulation Quantum for multiple eventq simulation. More... | |
uint32_t | numMainEventQueues = 0 |
Current number of allocated main event queues. More... | |
std::vector< EventQueue * > | mainEventQueue |
Array for main event queues. More... | |
__thread EventQueue * | _curEventQueue = NULL |
The current event queue for the running thread. More... | |
bool | inParallelMode = false |
Current mode of execution: parallel / serial. More... | |
bool | FullSystem |
The FullSystem variable can be used to determine the current mode of simulation. More... | |
unsigned int | FullSystemInt |
In addition to the boolean flag we make use of an unsigned int since the CPU instruction decoder makes use of the variable in switch statements. More... | |
std::set< std::string > | version_tags |
The version tags for this build of the simulator, to be stored in the Globals section during serialization and compared upon unserialization. More... | |
Root::RootStats & | rootStats = Root::RootStats::instance |
Global simulator statistics that are not associated with a specific SimObject. More... | |
int | ckptMaxCount = 0 |
int | ckptCount = 0 |
int | ckptPrevCount = -1 |
template<class T > | |
decltype(std::begin(std::declval< const T & >()), std::end(std::declval< const T & >()), void()) | arrayParamOut (CheckpointOut &os, const std::string &name, const T ¶m) |
GlobalSimLoopExitEvent * | simulate_limit_event = nullptr |
static std::unique_ptr< SimulatorThreads > | simulatorThreads |
statistics::Formula & | simSeconds = rootStats.simSeconds |
statistics::Value & | simTicks = rootStats.simTicks |
statistics::Value & | simFreq = rootStats.simFreq |
statistics::Value & | hostSeconds = rootStats.hostSeconds |
const char * | hostname = "m5.eecs.umich.edu" |
const unsigned | seconds_since_epoch = 1000 * 1000 * 1000 |
Approximate seconds since the epoch (1/1/1970). More... | |
Asynchronous event flags. | |
To avoid races, signal handlers simply set these flags, which are then checked in the main event loop. Defined in main.cc. | |
volatile bool | async_event = false |
Some asynchronous event has happened. More... | |
volatile bool | async_statdump = false |
Async request to dump stats. More... | |
volatile bool | async_statreset = false |
Async request to reset stats. More... | |
volatile bool | async_exit = false |
Async request to exit simulator. More... | |
volatile bool | async_io = false |
Async I/O request (SIGIO). More... | |
volatile bool | async_exception = false |
Python exception. More... | |
Reference material can be found at the JEDEC website: UFS standard http://www.jedec.org/standards-documents/results/jesd220 UFS HCI specification http://www.jedec.org/standards-documents/results/jesd223.
SSTResponderInterface provides an interface specified gem5's expectations on the functionality of an SST Responder.
the profiler uses GPUCoalescer code even though the GPUCoalescer is not built for all ISAs, which can lead to run/link time errors.
On Linux, MAP_NORESERVE allow us to simulate a very large memory without committing to actually providing the swap space on the host.
When building the debug binary, we need to undo the command-line definition of DEBUG not to clash with DRAMsim3 print macros that are included for no obvious reason.
When building the debug binary, we need to undo the command-line definition of DEBUG not to clash with DRAMSim2 print macros that are included for no obvious reason.
Copyright (c) 2020 Inria All rights reserved.
Copyright (c) 2019, 2020 Inria All rights reserved.
Copyright (c) 2018-2020 Inria All rights reserved.
Copyright (c) 2019 Metempsy Technology Consulting All rights reserved.
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Note: For details on the implementation see https://wiki.osdev.org/%228042%22_PS/2_Controller.
UFS command flow state machine digraph CommandFlow{ node [fontsize=10]; IDLE -> transferHandler [ label=" transfer/task/command request " fontsize=6]; transferHandler -> command [ label=" It is a command " fontsize=6]; command -> IDLE [ label=" Command done, no further action " fontsize=6]; transferHandler -> taskStart [ label=" It is a task " fontsize=6]; taskStart -> finalUTP [ label=" Task handled, now acknowledge (UFS) " fontsize=6]; transferHandler -> transferStart [ label=" It is a transfer " fontsize=6]; transferStart -> SCSIResume [ label=" Transfer, obtain the specific command " fontsize=6]; SCSIResume -> DiskDataFlowPhase [ label=" Disk data transfer (see other graphs) " fontsize=6]; SCSIResume -> DeviceDataPhase [ label=" Device info transfer (handled in SCSIResume) " fontsize=6]; DiskDataFlowPhase -> transferDone [ label=" Transfer done, acknowledge SCSI command " fontsize=6]; DeviceDataPhase -> transferDone [ label=" Transfer done, acknowledge SCSI command " fontsize=6]; transferDone -> finalUTP [ label=" Transfer handled, now acknowledge (UFS) " fontsize=6]; finalUTP -> readDone [ label=" All handled, clear data structures " fontsize=6]; readDone -> IDLE [ label=" All handled, nothing outstanding " fontsize=6]; readDone -> transferHandler [ label=" All handled, handle next outstanding " fontsize=6]; }.
Generalized N-dimensinal vector documentation key stats interval stats – these both can use the same function that prints out a specific set of stats VectorStandardDeviation totals Document Namespaces
UFS read transaction flow state machine digraph readFlow{ node [fontsize=10]; getScatterGather -> commitReadFromDisk [ label=" Put the information about the data transfer to the disk " fontsize=6]; commitReadFromDisk -> waitForReads [ label=" Push the reads to the flashmodel and wait for callbacks " fontsize=6]; waitForReads -> pushToDMA [ label=" Push to the DMA and wait for them to finish " fontsize=6]; pushToDMA -> waitForReads [ label=" Wait for the next disk event " fontsize=6]; pushToDMA -> waitForDMA [ label=" Wait for the last DMA transfer to finish " fontsize=6]; waitForDMA -> finishTransfer [ label=" Continue with the command flow " fontsize=6]; } UFS write transaction flow state machine digraph WriteFlow{ node [fontsize=10]; getScatterGather -> getFromDMA [ label=" Put the transfer information to the DMA " fontsize=6]; getFromDMA -> waitForDMA [ label=" Wait for dma actions to arrive " fontsize=6]; waitForDMA -> pushToDisk [ label=" Push arrived DMA to disk " fontsize=6]; pushToDisk -> waitForDMA [ label=" Wait for next DMA action " fontsize=6]; pushToDisk -> waitForDisk [ label=" All DMA actions are done, wait for disk " fontsize=6]; waitForDisk -> finishTransfer [ label=" All transactions are done , continue the command flow " fontsize=6]; }
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Access Map Pattern Matching Prefetcher
References: Access map pattern matching for high performance data cache prefetch. Ishii, Y., Inaba, M., & Hiraki, K. (2011). Journal of Instruction-Level Parallelism, 13, 1-24.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the 'A Best-Offset Prefetcher' Reference: Michaud, P. (2015, June). A best-offset prefetcher. In 2nd Data Prefetching Championship.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Indirect Memory Prefetcher
References: IMP: Indirect memory prefetcher. Yu, X., Hughes, C. J., Satish, N., & Devadas, S. (2015, December). In Proceedings of the 48th International Symposium on Microarchitecture (pp. 178-190). ACM.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Irregular Stream Buffer prefetcher Reference: Jain, A., & Lin, C. (2013, December). Linearizing irregular memory accesses for improved correlated prefetching. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (pp. 247-259). ACM.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the 'Proactive Instruction Fetch' prefetcher Reference: Ferdman, M., Kaynak, C., & Falsafi, B. (2011, December). Proactive instruction fetch. In Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture (pp. 152-162). ACM.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the 'Sandbox Based Optimal Offset Estimation' Reference: Brown, N. T., & Sendag, R. Sandbox Based Optimal Offset Estimation.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Signature Path Prefetcher
References: Lookahead prefetching with signature path J Kim, PV Gratz, ALN Reddy The 2nd Data Prefetching Championship (DPC2) The filter feature described in the paper is not implemented, as it redundant prefetches are dropped by the cache.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Signature Path Prefetcher (v2)
References: Path confidence based lookahead prefetching Jinchun Kim, Seth H. Pugsley, Paul V. Gratz, A. L. Narasimha Reddy, Chris Wilkerson, and Zeshan Chishti. 2016. In The 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-49). IEEE Press, Piscataway, NJ, USA, Article 60, 12 pages.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The SlimAMPM Prefetcher Reference: Towards Bandwidth-Efficient Prefetching with Slim AMPM. Young, Vinson, and A. Krishna. The 2nd Data Prefetching Championship (2015).
This prefetcher uses two other prefetchers, the AMPM and the DCPT.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer; redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution; neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Implementation of the Spatio-Temporal Memory Streaming Prefetcher (STeMS) Reference: Spatio-temporal memory streaming. Somogyi, S., Wenisch, T. F., Ailamaki, A., & Falsafi, B. (2009). ACM SIGARCH Computer Architecture News, 37(3), 69-80.
Notes:
The functionality described in the paper as Streamed Value Buffer (SVB) is not implemented here, as this is handled by the QueuedPrefetcher class
On FreeBSD or OSX the MAP_NORESERVE flag does not exist, so simply make it 0.
here we guard the coalescer code with ifdefs as there is no easy way to refactor this code without removing GPUCoalescer stats from the profiler.
eventually we should use probe points here, but until then these ifdefs will serve.
OutgoingRequestBridge acts as a SimObject owning pointers to both a gem5 OutgoingRequestPort and an SST port (via SSTResponderInterface). This bridge will forward gem5 packets from the gem5 port to the SST interface. Responses from SST will be handle by OutgoingRequestPort itself. Note: the bridge should be decoupled from the SST libraries so that it'll be SST-version-independent. Thus, there's no translation between a gem5 packet and SST Response here.
This interfaces expects SST Responder to be able to handle gem5 packet on recvTimingReq(), recvRespRetry(), and recvFunctional().
typedef uint32_t gem5::_amd_queue_properties32_t |
Definition at line 62 of file hsa_queue.hh.
typedef uint64_t gem5::Addr |
typedef int64_t gem5::amd_signal_kind64_t |
Definition at line 40 of file hsa_signal.hh.
typedef struct gem5::amd_signal_s gem5::amd_signal_t |
typedef MultiLevelPageTable<LongModePTE<47, 39>, LongModePTE<38, 30>, LongModePTE<29, 21>, LongModePTE<20, 12> > gem5::ArchPageTable |
Definition at line 82 of file process.cc.
using gem5::AuxVector = typedef gem5::auxv::AuxVector<IntType> |
Definition at line 132 of file aux_vector.hh.
typedef std::unique_ptr<BaseHTMCheckpoint> gem5::BaseHTMCheckpointPtr |
typedef std::pair<Addr, Addr> gem5::BasicBlockRange |
Probe for SimPoints BBV generation.
Start and end address of basic block for SimPoint profiling. This structure is used to look up the hash table of BBVs.
Definition at line 61 of file simpoint.hh.
typedef uint32_t gem5::CachesMask |
typedef std::ostream gem5::CheckpointOut |
Definition at line 66 of file serialize.hh.
using gem5::ConstVPtr = typedef ConstProxyPtr<T, SETranslatingPortProxy> |
Definition at line 399 of file proxy_ptr.hh.
typedef int gem5::ContextID |
typedef int64_t gem5::Counter |
typedef std::shared_ptr<EthPacketData> gem5::EthPacketPtr |
Definition at line 90 of file etherpkt.hh.
typedef std::shared_ptr<FaultBase> gem5::Fault |
typedef const char* gem5::FaultName |
typedef statistics::Scalar gem5::FaultStat |
typedef std::vector<FUDesc *>::const_iterator gem5::FUDDiterator |
Definition at line 91 of file func_unit.hh.
typedef std::shared_ptr<GPUDynInst> gem5::GPUDynInstPtr |
typedef struct stat gem5::hst_stat |
Definition at line 540 of file syscall_emul.hh.
typedef struct stat64 gem5::hst_stat64 |
Definition at line 540 of file syscall_emul.hh.
typedef struct statfs gem5::hst_statfs |
Definition at line 540 of file syscall_emul.hh.
typedef uint64_t gem5::InstSeqNum |
Definition at line 40 of file inst_seq.hh.
typedef unsigned int gem5::InstTag |
Definition at line 43 of file inst_seq.hh.
typedef MemBackdoor* gem5::MemBackdoorPtr |
Definition at line 127 of file backdoor.hh.
typedef uint16_t gem5::MicroPC |
typedef std::vector<OpDesc *>::const_iterator gem5::OPDDiterator |
Definition at line 90 of file func_unit.hh.
typedef std::map<P9MsgType, P9MsgInfo> gem5::P9MsgInfoMap |
typedef uint8_t gem5::P9MsgType |
typedef uint16_t gem5::P9Tag |
typedef uint8_t* gem5::PacketDataPtr |
typedef uint64_t gem5::PacketId |
typedef std::list<PacketPtr> gem5::PacketList |
typedef Packet * gem5::PacketPtr |
Definition at line 70 of file thread_context.hh.
using gem5::PhysRegIdPtr = typedef PhysRegId* |
Definition at line 487 of file reg_class.hh.
typedef struct gem5::GEM5_PACKED gem5::PM4FrameCtrl |
typedef struct gem5::GEM5_PACKED gem5::PM4Header |
PM4 packets.
typedef struct gem5::GEM5_PACKED gem5::PM4IndirectBuf |
typedef struct gem5::GEM5_PACKED gem5::PM4IndirectBufConst |
typedef struct gem5::GEM5_PACKED gem5::PM4MapProcess |
typedef struct gem5::GEM5_PACKED gem5::PM4MapQueues |
typedef struct gem5::GEM5_PACKED gem5::PM4QueryStatus |
typedef struct gem5::GEM5_PACKED gem5::PM4ReleaseMem |
typedef struct gem5::GEM5_PACKED gem5::PM4RunList |
typedef struct gem5::GEM5_PACKED gem5::PM4SetResources |
typedef struct gem5::GEM5_PACKED gem5::PM4SetUConfig |
typedef struct gem5::GEM5_PACKED gem5::PM4SetUconfigReg |
typedef struct gem5::GEM5_PACKED gem5::PM4SwitchBuf |
typedef struct gem5::GEM5_PACKED gem5::PM4UnmapQueues |
typedef struct gem5::GEM5_PACKED gem5::PM4WaitRegMem |
typedef struct gem5::GEM5_PACKED |