![]() |
P4C
The P4 Compiler
|
#include <action_format.h>
Public Member Functions | |
MeterColor (cstring mn, le_bitrange r) | |
bool | can_merge (const Parameter *ad) const override |
void | dbprint (std::ostream &out) const override |
bool | equiv_value (const Parameter *, bool check_cond=true) const override |
bool | from_p4_program () const override |
const Parameter * | get_extended_param (uint32_t extension, const Parameter *) const override |
bool | is_next_bit_of_param (const Parameter *, bool same_alias) const override |
bool | is_padding () const |
bool | is_subset_of (const Parameter *ad) const override |
const Parameter * | merge (const Parameter *ad) const override |
cstring | name () const override |
bool | only_one_overlap_solution () const override |
const Parameter * | overlap (const Parameter *ad, bool only_one_overlap_solution, le_bitrange *my_overlap, le_bitrange *ad_overlap) const override |
le_bitrange | range () const |
int | size () const override |
const Parameter * | split (int lo, int hi) const override |
![]() | |
bool | can_overlap_ranges (le_bitrange my_range, le_bitrange ad_range, le_bitrange &overlap, le_bitrange *my_overlap, le_bitrange *ad_overlap) const |
cstring | cond_name () const |
bool | equiv_cond (const Parameter *p) const |
template<typename T> | |
bool | is () const |
bool | is_cond_type (ModConditionally_t type) const |
void | set_cond (const Parameter *p) |
void | set_cond (ModConditionally_t ct, cstring n) |
template<typename T> | |
const T * | to () const |
![]() | |
void | print () const |
Additional Inherited Members | |
![]() | |
cstring | _cond_name |
ModConditionally_t | _cond_type = NONE |
A Meter Color Map RAM outputs an 8-bit color to bits 24..31 of immediate. Only one meter can currently be connected to a single table's logical table (though perhaps later maybe more than one meter can be accessed). Similar to random number, the entire 8-bits of output is used by the meter color, thus nothing else can be allocated to those 8 bits.
However, unlike Random, because only one meter can exist per logical table, there is no need to complicate the merge and subset functions
|
overridevirtual |
Reimplemented from ActionData::Parameter.
|
inlineoverridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Implements ActionData::Parameter.
|
inlineoverridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Reimplemented from ActionData::Parameter.
Reimplemented from ActionData::Parameter.
|
inlineoverridevirtual |
Implements ActionData::Parameter.
|
inlineoverridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Implements ActionData::Parameter.
|
inlineoverridevirtual |
Implements ActionData::Parameter.
|
overridevirtual |
Implements ActionData::Parameter.