30#ifndef __SIM_GLOBAL_EVENT_HH__
31#define __SIM_GLOBAL_EVENT_HH__
155template <
class Derived>
BaseGlobalEventTemplate(Priority p, Flags f)
virtual ~BaseGlobalEventTemplate()
The base class for the local events that will synchronize threads to perform the global event.
virtual BaseGlobalEvent * globalEvent()
If this is part of a GlobalEvent, return the pointer to the Global Event.
BarrierEvent(BaseGlobalEvent *global_event, Priority p, Flags f)
friend class BaseGlobalEvent
BaseGlobalEvent * _globalEvent
virtual ~BaseGlobalEvent()
BaseGlobalEvent(Priority p, Flags f)
static std::mutex globalQMutex
Mutex variable for providing exculsive right to schedule global events.
Barrier barrier
The barrier that all threads wait on before performing the global event.
virtual const char * description() const =0
std::vector< BarrierEvent * > barrierEvent
The individual local event instances (one per thread/event queue).
void reschedule(Tick when)
Common base class for Event and GlobalEvent, so they can share flag and priority definitions and acce...
::gem5::Flags< FlagsType > Flags
void release()
Managed event removed from the event queue.
Event(Priority p=Default_Pri, Flags f=0)
Wrapper that groups a few flag bits under the same undelying container.
BarrierEvent(Base *global_event, Priority p, Flags f)
GlobalEvent(Tick when, Priority p, Flags f)
GlobalEvent(Priority p, Flags f)
BaseGlobalEventTemplate< GlobalEvent > Base
BarrierEvent(Base *global_event, Priority p, Flags f)
virtual ~GlobalSyncEvent()
const char * description() const
GlobalSyncEvent(Priority p, Flags f)
GlobalSyncEvent(Tick when, Tick _repeat, Priority p, Flags f)
BaseGlobalEventTemplate< GlobalSyncEvent > Base
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Tick
Tick count type.
uint32_t numMainEventQueues
Current number of allocated main event queues.
EventQueue * curEventQueue()