P4C
The P4 Compiler
|
Public Types | |
enum | MeterType { PACKETS , BYTES } |
Public Member Functions | |
EBPFMeterPSA (const EBPFProgram *program, cstring instanceName, const IR::Declaration_Instance *di, CodeGenInspector *codeGen) | |
void | emitDirectExecute (CodeBuilder *builder, const P4::ExternMethod *method, cstring valuePtr) const |
void | emitExecute (CodeBuilder *builder, const P4::ExternMethod *method, ControlBodyTranslatorPSA *translator) const |
void | emitInstance (CodeBuilder *builder) const |
void | emitKeyType (CodeBuilder *builder) const |
void | emitSpinLockField (CodeBuilder *builder) const |
void | emitValueType (CodeBuilder *builder) const |
Public Member Functions inherited from P4::EBPF::EBPFObject | |
DECLARE_TYPEINFO (EBPFObject) | |
Public Member Functions inherited from P4::ICastable | |
template<typename T > | |
T & | as () |
Tries to convert the class to type T. A BUG occurs if the cast fails. | |
template<typename T > | |
const T & | as () const |
Tries to convert the class to type T. A BUG occurs if the cast fails. | |
template<typename T > | |
T * | checkedTo () |
Performs a checked cast. A BUG occurs if the cast fails. | |
template<typename T > | |
const T * | checkedTo () const |
Performs a checked cast. A BUG occurs if the cast fails. | |
Public Member Functions inherited from P4::RTTI::Base | |
template<typename T > | |
bool | is () const noexcept |
virtual bool | isA (TypeId typeId) const noexcept=0 |
template<typename T > | |
const T * | to () const noexcept |
Same as to , but returns const pointer to T. | |
template<typename T > | |
T * | to () noexcept |
virtual TypeId | typeId () const noexcept=0 |
Static Public Member Functions | |
static void | emitValueStruct (CodeBuilder *builder, P4::ReferenceMap *refMap) |
static cstring | meterExecuteFunc (bool trace, P4::ReferenceMap *refMap) |
static MeterType | toType (const int typeCode) |
Static Public Member Functions inherited from P4::EBPF::EBPFObject | |
static cstring | externalName (const IR::IDeclaration *declaration) |
static cstring | getSpecializedTypeName (const IR::Declaration_Instance *di) |
static cstring | getTypeName (const IR::Declaration_Instance *di) |
Public Attributes | |
MeterType | type |
Public Attributes inherited from P4::EBPF::EBPFTableBase | |
CodeGenInspector * | codeGen |
cstring | dataMapName |
cstring | instanceName |
cstring | keyTypeName |
const EBPFProgram * | program |
cstring | valueTypeName |
Protected Attributes | |
const cstring | indirectValueField = "value"_cs |
bool | isDirect |
EBPFType * | keyType {} |
size_t | size {} |
const cstring | spinlockField = "lock"_cs |
Additional Inherited Members | |
Protected Member Functions inherited from P4::EBPF::EBPFTableBase | |
EBPFTableBase (const EBPFProgram *program, cstring instanceName, CodeGenInspector *codeGen) | |
DECLARE_TYPEINFO (EBPFTableBase, EBPFObject) | |
Protected Member Functions inherited from P4::RTTI::Base | |
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |