gem5  v22.1.0.0
The Flags API.

These methods relate to the Flags interface. More...

 gem5::Flags< T >::Flags (Type flags=0)
 Initialize flags with a given value. More...
 
 gem5::Flags< T >::operator const Type () const
 
const Flags< T > & gem5::Flags< T >::operator= (T flags)
 
bool gem5::Flags< T >::isSet (Type mask) const
 Verifies whether any bit matching the given mask is set. More...
 
bool gem5::Flags< T >::allSet (Type mask) const
 Verifies whether no bits matching the given mask are set. More...
 
bool gem5::Flags< T >::noneSet (Type mask) const
 Verifies whether no bits matching the given mask are set. More...
 
void gem5::Flags< T >::clear ()
 Clear all flag's bits. More...
 
void gem5::Flags< T >::clear (Type mask)
 Clear all flag's bits matching the given mask. More...
 
void gem5::Flags< T >::set (Type mask)
 Set all flag's bits matching the given mask. More...
 
void gem5::Flags< T >::set (Type mask, bool condition)
 Conditionally set or clear some bits of the flag, given a mask. More...
 
void gem5::Flags< T >::replace (Type flags, Type mask)
 Replace the contents of the bits matching the mask with the corresponding bits in the provided flags. More...
 

Detailed Description

These methods relate to the Flags interface.

Function Documentation

◆ allSet()

template<typename T >
bool gem5::Flags< T >::allSet ( Type  mask) const
inline

Verifies whether no bits matching the given mask are set.

Parameters
maskThe mask containing the bits to verify.
Returns
True if matching bits are set; false otherwise.

Definition at line 91 of file flags.hh.

References gem5::Flags< T >::_flags, and gem5::mask().

◆ clear() [1/2]

template<typename T >
void gem5::Flags< T >::clear ( )
inline

◆ clear() [2/2]

template<typename T >
void gem5::Flags< T >::clear ( Type  mask)
inline

Clear all flag's bits matching the given mask.

Parameters
maskThe mask containing the bits to be cleared.

Definition at line 109 of file flags.hh.

References gem5::Flags< T >::_flags, and gem5::mask().

◆ Flags()

template<typename T >
gem5::Flags< T >::Flags ( Type  flags = 0)
inline

Initialize flags with a given value.

If no value is provided, the flag bits are initialized cleared.

Parameters
flagsThe value to initialize the flags with.

Definition at line 66 of file flags.hh.

◆ isSet()

template<typename T >
bool gem5::Flags< T >::isSet ( Type  mask) const
inline

Verifies whether any bit matching the given mask is set.

Parameters
maskThe mask containing the bits to verify.
Returns
True if any matching bit is set; false otherwise.

Definition at line 83 of file flags.hh.

References gem5::Flags< T >::_flags, and gem5::mask().

Referenced by gem5::Event::acquire(), gem5::Packet::cacheResponding(), gem5::Packet::deleteData(), gem5::Request::extraDataValid(), gem5::Packet::getAddr(), gem5::Packet::getConstPtr(), gem5::Packet::getHtmTransactionUid(), gem5::Packet::getPtr(), gem5::Packet::getRaw(), gem5::Packet::getSize(), gem5::Request::getVaddr(), gem5::Request::hasContextId(), gem5::Request::hasHtmAbortCause(), gem5::Request::hasInstCount(), gem5::Request::hasInstSeqNum(), gem5::Request::hasPaddr(), gem5::Request::hasPC(), gem5::Packet::hasSharers(), gem5::Request::hasSize(), gem5::Request::hasStreamId(), gem5::Request::hasSubstreamId(), gem5::Request::hasVaddr(), gem5::Packet::htmTransactionFailedInCache(), gem5::Request::isAcquire(), gem5::o3::LSQ::LSQRequest::isAnyOutstandingRequest(), gem5::o3::LSQ::LSQRequest::isAtomic(), gem5::Request::isAtomic(), gem5::Request::isAtomicNoReturn(), gem5::Request::isAtomicReturn(), gem5::Packet::isBlockCached(), gem5::Request::isCacheClean(), gem5::Request::isCacheInvalidate(), gem5::Request::isCacheMaintenance(), gem5::o3::LSQ::LSQRequest::isComplete(), gem5::Request::isCondSwap(), gem5::o3::LSQ::LSQRequest::isDelayed(), gem5::OperandInfo::isDst(), gem5::OperandInfo::isExec(), gem5::Event::isExitEvent(), gem5::Packet::isExpressSnoop(), gem5::Event::isFlagSet(), gem5::OperandInfo::isFlatScratch(), gem5::Request::isGL2CacheFlush(), gem5::Request::isHTMAbort(), gem5::Request::isHTMCancel(), gem5::Request::isHTMCommit(), gem5::Request::isHTMStart(), gem5::Packet::isHtmTransactional(), gem5::OperandInfo::isImm(), gem5::Request::isInstFetch(), gem5::Request::isInvL1(), gem5::Request::isKernel(), gem5::Request::isLLSC(), gem5::o3::LSQ::LSQRequest::isLoad(), gem5::Request::isLockedRMW(), gem5::Event::isManaged(), gem5::Request::isPrefetch(), gem5::Request::isPrefetchEx(), gem5::Request::isPriv(), gem5::Request::isPTWalk(), gem5::Request::isReadModifyWrite(), gem5::Request::isRelease(), gem5::o3::LSQ::LSQRequest::isReleased(), gem5::OperandInfo::isScalarReg(), gem5::Packet::isSecure(), gem5::Request::isSecure(), gem5::o3::LSQ::LSQRequest::isSent(), gem5::o3::LSQ::LSQRequest::isSplit(), gem5::OperandInfo::isSrc(), gem5::TraceCPU::ElasticDataGen::GraphNode::isStrictlyOrdered(), gem5::Request::isStrictlyOrdered(), gem5::Request::isSwap(), gem5::Request::isTlbi(), gem5::Request::isTlbiExtSync(), gem5::Request::isTlbiExtSyncComp(), gem5::Request::isTlbiSync(), gem5::Request::isToPOC(), gem5::Request::isToPOU(), gem5::o3::LSQ::LSQRequest::isTranslationBlocked(), gem5::o3::LSQ::LSQRequest::isTranslationComplete(), gem5::Request::isUncacheable(), gem5::OperandInfo::isVcc(), gem5::OperandInfo::isVectorReg(), gem5::o3::LSQ::LSQRequest::needWBToRegister(), gem5::statistics::Text::noOutput(), gem5::statistics::VectorPrint::operator()(), gem5::statistics::DistPrint::operator()(), gem5::statistics::ScalarPrint::operator()(), gem5::Packet::Packet(), gem5::Event::release(), gem5::Packet::responderHadWritable(), gem5::Packet::satisfied(), gem5::Event::scheduled(), gem5::Packet::setAddr(), gem5::Packet::setCacheResponding(), gem5::Packet::setData(), gem5::Packet::setRaw(), gem5::Packet::setSatisfied(), gem5::Packet::setSize(), gem5::Event::squashed(), gem5::Packet::suppressFuncError(), gem5::Event::unserialize(), gem5::statistics::Text::visit(), gem5::o3::LSQ::LSQRequest::writebackScheduled(), and gem5::Packet::writeThrough().

◆ noneSet()

template<typename T >
bool gem5::Flags< T >::noneSet ( Type  mask) const
inline

Verifies whether no bits matching the given mask are set.

Parameters
maskThe mask containing the bits to verify.
Returns
True if matching bits are cleared; false otherwise.

Definition at line 99 of file flags.hh.

References gem5::Flags< T >::_flags, and gem5::mask().

Referenced by gem5::Packet::allocate(), gem5::Event::clearFlags(), gem5::Packet::dataDynamic(), gem5::Packet::dataStatic(), gem5::Packet::dataStaticConst(), gem5::Event::isFlagSet(), and gem5::Event::setFlags().

◆ operator const Type()

template<typename T >
gem5::Flags< T >::operator const Type ( ) const
inline

Definition at line 68 of file flags.hh.

References gem5::Flags< T >::_flags.

◆ operator=()

template<typename T >
const Flags<T>& gem5::Flags< T >::operator= ( flags)
inline

Definition at line 71 of file flags.hh.

References gem5::Flags< T >::_flags, and flags.

◆ replace()

template<typename T >
void gem5::Flags< T >::replace ( Type  flags,
Type  mask 
)
inline

Replace the contents of the bits matching the mask with the corresponding bits in the provided flags.

This is equivalent to: flags.clear(mask); flags.set(flags & mask);

Parameters
flagsFlags to extract new bits from.
maskMask used to determine which bits are replaced.

Definition at line 141 of file flags.hh.

References gem5::Flags< T >::_flags, flags, and gem5::mask().

◆ set() [1/2]

template<typename T >
void gem5::Flags< T >::set ( Type  mask)
inline

Set all flag's bits matching the given mask.

Parameters
maskThe mask containing the bits to be set.

Definition at line 116 of file flags.hh.

References gem5::Flags< T >::_flags, and gem5::mask().

Referenced by gem5::Packet::allocate(), gem5::o3::LSQ::LSQRequest::complete(), gem5::Packet::copyResponderFlags(), gem5::Packet::dataDynamic(), gem5::Packet::dataStatic(), gem5::Packet::dataStaticConst(), gem5::ArmISA::TableWalker::doL1Descriptor(), gem5::ArmISA::TableWalker::doLongDescriptor(), gem5::o3::LSQ::SingleDataRequest::finish(), gem5::GPUComputeDriver::GPUComputeDriver(), gem5::o3::LSQ::LSQRequest::LSQRequest(), gem5::o3::LSQ::LSQRequest::markDelayed(), gem5::OperandInfo::OperandInfo(), gem5::Packet::Packet(), gem5::o3::LSQ::LSQRequest::packetNotSent(), gem5::o3::LSQ::LSQRequest::packetSent(), gem5::ArmISA::TableWalker::processWalk(), gem5::ArmISA::TableWalker::processWalkAArch64(), gem5::ArmISA::TableWalker::processWalkLPAE(), gem5::o3::LSQ::LSQRequest::release(), gem5::Request::Request(), gem5::Flags< T >::set(), gem5::Packet::setBlockCached(), gem5::Request::setCacheCoherenceFlags(), gem5::Packet::setCacheResponding(), gem5::Request::setContext(), gem5::Packet::setExpressSnoop(), gem5::Request::setExtraData(), gem5::Event::setFlags(), gem5::Request::setFlags(), gem5::Packet::setHasSharers(), gem5::Request::setHtmAbortCause(), gem5::Packet::setHtmTransactional(), gem5::Packet::setHtmTransactionFailedInCache(), gem5::statistics::InfoAccess::setInit(), gem5::Request::setInstCount(), gem5::Request::setPaddr(), gem5::Request::setPC(), gem5::Request::setReqInstSeqNum(), gem5::Packet::setResponderHadWritable(), gem5::Packet::setSatisfied(), gem5::Packet::setSize(), gem5::Request::setStreamId(), gem5::Request::setSubstreamId(), gem5::Packet::setSuppressFuncError(), gem5::Request::setVirt(), gem5::Packet::setWriteThrough(), gem5::o3::LSQ::SplitDataRequest::SplitDataRequest(), gem5::Event::squash(), gem5::o3::LSQ::LSQRequest::squashTranslation(), TEST(), gem5::Event::unserialize(), gem5::o3::LSQ::LSQRequest::writebackDone(), and gem5::o3::LSQ::LSQRequest::writebackScheduled().

◆ set() [2/2]

template<typename T >
void gem5::Flags< T >::set ( Type  mask,
bool  condition 
)
inline

Conditionally set or clear some bits of the flag, given a mask.

Parameters
maskThe mask containing the bits to be modified.
conditionIf true, set masked bits; otherwise, clear them.

Definition at line 125 of file flags.hh.

References gem5::Flags< T >::clear(), gem5::mask(), and gem5::Flags< T >::set().


Generated on Wed Dec 21 2022 10:23:05 for gem5 by doxygen 1.9.1