P4C
The P4 Compiler
|
Public Member Functions | |
EBPFProgram (const EbpfOptions &options, const IR::P4Program *program, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, const IR::ToplevelBlock *toplevel) | |
return 'true' on success | |
virtual bool | build () |
DECLARE_TYPEINFO (EBPFProgram, EBPFObject) | |
virtual void | emitC (CodeBuilder *builder, const std::filesystem::path &headerFile) |
virtual void | emitCommonPreamble (CodeBuilder *builder) |
virtual void | emitGeneratedComment (CodeBuilder *builder) |
virtual void | emitH (CodeBuilder *builder, const std::filesystem::path &headerFile) |
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 |
Public Attributes | |
cstring | arrayIndexType = "u32"_cs |
TODO: this should be a compiler option probably. | |
cstring | byteVar |
EBPFControl * | control |
EBPFDeparser * | deparser |
Deparser may be NULL if not supported (e.g. ebpfFilter package). | |
cstring | endLabel |
cstring | errorEnum |
cstring | errorVar |
cstring | functionName |
cstring | headerStartVar |
cstring | lengthVar |
cstring | license = "GPL"_cs |
EBPFModel & | model |
cstring | offsetVar |
const EbpfOptions & | options |
cstring | packetEndVar |
cstring | packetStartVar |
EBPFParser * | parser |
const IR::P4Program * | program |
const Target * | progTarget |
P4::ReferenceMap * | refMap |
const IR::ToplevelBlock * | toplevel |
P4::TypeMap * | typeMap |
cstring | zeroKey |
Protected Member Functions | |
virtual void | emitHeaderInstances (CodeBuilder *builder) |
virtual void | emitLocalVariables (CodeBuilder *builder) |
virtual void | emitPipeline (CodeBuilder *builder) |
virtual void | emitPreamble (CodeBuilder *builder) |
virtual void | emitTypes (CodeBuilder *builder) |
virtual bool | isLibraryMethod (cstring methodName) |
Protected Member Functions inherited from P4::RTTI::Base | |
virtual const void * | toImpl (TypeId typeId) const noexcept=0 |
Additional Inherited Members | |
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) |
|
protectedvirtual |
Reimplemented in P4::EBPF::EBPFPipeline.
|
protectedvirtual |
Reimplemented in P4::EBPF::EBPFPipeline, and P4::TC::TCIngressPipelinePNA.
|
protectedvirtual |
Checks whether a method name is considered to be part of the standard library, e.g., defined in core.p4 or ebpf_model.p4. TODO: Should we also distinguish overloaded methods?
Reimplemented in P4::UBPF::UBPFProgram.