C++ Device API Reference Manual
Reference documentation for the Simics C++ Device API.
 
Loading...
Searching...
No Matches
sme::rules::pattern Class Reference

rule executes if the masked pattern matches the start (old) and end (new) values. More...

#include <pattern.h>

Inheritance diagram for sme::rules::pattern:
sme::I_pattern_rule

Public Member Functions

 pattern (uint64_t _mask, uint64_t _start, uint64_t _end)
 Construct a new pattern object.
 
virtual ~pattern ()
 Destroy the pattern object.
 
virtual void process_rule (uint64_t _old_value, uint64_t &_new_value)
 process rule evaluation between old and new values.
 
- Public Member Functions inherited from sme::I_pattern_rule
 I_pattern_rule ()
 Interface parent constructor for a new i pattern rule object.
 
virtual ~I_pattern_rule ()
 Destroy the i pattern rule object.
 
virtual void process_rule (std::uint64_t _old_value, std::uint64_t &_new_value)=0
 process rule evaluation between old and new values.
 
void action (std::function< void()> _action)
 Binds a void(void) lambda as the callback action to this rule.
 
_always_inline bool is_active ()
 reports if rule is active for processing.
 
_always_inline bool is_bound ()
 has the lambda callback been bound.
 

Public Attributes

uint64_t m_mask
 mask to apply for rule evaluation.
 
uint64_t m_start
 initial value to match with mask.
 
uint64_t m_end
 new value to match with mask.
 

Additional Inherited Members

- Protected Attributes inherited from sme::I_pattern_rule
std::function< void()> m_lambda
 placeholder for lambda
 
bool m_is_active
 stores is active
 

Detailed Description

rule executes if the masked pattern matches the start (old) and end (new) values.

Constructor & Destructor Documentation

◆ pattern()

sme::rules::pattern::pattern ( uint64_t  _mask,
uint64_t  _start,
uint64_t  _end 
)
inline

Construct a new pattern object.

Parameters
_maskto be applied on the target (Register or Field)
_startvalue which _old_data should match
_endvalue which _new_data should match

◆ ~pattern()

virtual sme::rules::pattern::~pattern ( )
inlinevirtual

Destroy the pattern object.

Member Function Documentation

◆ process_rule()

virtual void sme::rules::pattern::process_rule ( uint64_t  _old_value,
uint64_t &  _new_value 
)
inlinevirtual

process rule evaluation between old and new values.

Parameters
_old_valuevalue of content prior to read or write
_new_valuevalue of content post read or write

Member Data Documentation

◆ m_end

uint64_t sme::rules::pattern::m_end

new value to match with mask.

◆ m_mask

uint64_t sme::rules::pattern::m_mask

mask to apply for rule evaluation.

◆ m_start

uint64_t sme::rules::pattern::m_start

initial value to match with mask.


The documentation for this class was generated from the following file: