63 const IR::Parameter *user_metadata;
64 const IR::Parameter *inputStandardMetadata;
65 const IR::Parameter *outputStandardMetadata;
67 std::map<cstring, EBPFHashPSA *> hashes;
68 std::map<cstring, EBPFRandomPSA *> randoms;
69 std::map<cstring, EBPFRegisterPSA *> registers;
70 std::map<cstring, EBPFMeterPSA *> meters;
73 const IR::Parameter *parserHeaders)
78 void emitTableInstances(
CodeBuilder *builder)
override;
79 void emitTableInitializers(
CodeBuilder *builder)
override;
82 auto result = ::P4::get(randoms, name);
83 BUG_CHECK(result !=
nullptr,
"No random generator named %1%", name);
87 EBPFRegisterPSA *getRegister(
cstring name)
const {
88 auto result = ::P4::get(registers, name);
89 BUG_CHECK(result !=
nullptr,
"No register named %1%", name);
93 EBPFHashPSA *getHash(cstring name)
const {
94 auto result = ::P4::get(hashes, name);
95 BUG_CHECK(result !=
nullptr,
"No hash named %1%", name);
99 EBPFMeterPSA *getMeter(cstring name)
const {
100 auto result = ::P4::get(meters, name);
101 BUG_CHECK(result !=
nullptr,
"No meter named %1%", name);
105 DECLARE_TYPEINFO(EBPFControlPSA, EBPFControl);
Definition ebpfControl.h:28
Definition ebpfPsaControl.h:30