46 const IR::P4Program *program;
47 const IR::ToplevelBlock *toplevel;
56 cstring endLabel, offsetVar, lengthVar, headerStartVar;
57 cstring zeroKey, functionName, errorVar;
58 cstring packetStartVar, packetEndVar, byteVar;
66 P4::TypeMap *typeMap,
const IR::ToplevelBlock *toplevel)
67 : progTarget(
nullptr),
75 model(EBPFModel::instance),
78 offsetVar = EBPFModel::reserved(
"packetOffsetInBits");
79 zeroKey = EBPFModel::reserved(
"zero");
80 functionName = EBPFModel::reserved(
"filter");
81 errorVar = EBPFModel::reserved(
"errorCode");
82 packetStartVar = EBPFModel::reserved(
"packetStart");
83 packetEndVar = EBPFModel::reserved(
"packetEnd");
84 headerStartVar = EBPFModel::reserved(
"headerStart");
85 lengthVar = EBPFModel::reserved(
"pkt_len");
86 byteVar = EBPFModel::reserved(
"byte");
87 endLabel = EBPFModel::reserved(
"end");
88 errorEnum = EBPFModel::reserved(
"errorCodes");
94 virtual void emitHeaderInstances(
CodeBuilder *builder);
95 virtual void emitLocalVariables(
CodeBuilder *builder);
99 virtual void emitCommonPreamble(
CodeBuilder *builder);
100 virtual void emitGeneratedComment(
CodeBuilder *builder);