7#ifndef BACKENDS_EBPF_PSA_EBPFPSAPARSER_H_
8#define BACKENDS_EBPF_PSA_EBPFPSAPARSER_H_
10#include "backends/ebpf/ebpfParser.h"
11#include "backends/ebpf/ebpfType.h"
12#include "backends/ebpf/psa/ebpfPsaTable.h"
13#include "backends/ebpf/psa/externs/ebpfPsaChecksum.h"
19class PsaStateTranslationVisitor :
public StateTranslationVisitor {
25 : StateTranslationVisitor(refMap, typeMap), parser(prsr) {}
30class EBPFPsaParser :
public EBPFParser {
32 std::map<cstring, EBPFChecksumPSA *> checksums;
33 const IR::Parameter *inputMetadata;
35 EBPFPsaParser(
const EBPFProgram *program,
const IR::ParserBlock *block,
40 void emitDeclaration(
CodeBuilder *builder,
const IR::Declaration *decl)
override;
41 void emitRejectState(
CodeBuilder *builder)
override;
44 auto result = ::P4::get(checksums, name);
45 BUG_CHECK(result !=
nullptr,
"No checksum named %1%", name);
49 DECLARE_TYPEINFO(EBPFPsaParser, EBPFParser);
Definition ebpf/codeGen.h:33
Definition ebpfPsaChecksum.h:15
Definition ebpfProgram.h:30
Definition ebpfPsaParser.h:30
Definition methodInstance.h:168
Class used to encode maps from paths to declarations.
Definition referenceMap.h:67
Definition codeGen.cpp:25