P4C
The P4 Compiler
Loading...
Searching...
No Matches
targets/ebpf/program_info.h
1/*
2 * SPDX-FileCopyrightText: 2022 The P4 Language Consortium
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_EBPF_PROGRAM_INFO_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_EBPF_PROGRAM_INFO_H_
9
10#include <vector>
11
12#include "ir/ir.h"
13#include "lib/cstring.h"
14#include "lib/ordered_map.h"
15
16#include "backends/p4tools/modules/testgen/core/program_info.h"
17#include "backends/p4tools/modules/testgen/lib/continuation.h"
18
19namespace P4::P4Tools::P4Testgen::EBPF {
20
21class EBPFProgramInfo : public ProgramInfo {
22 private:
26
28 static const IR::Type_Bits PARSER_ERR_BITS;
29
32 std::vector<Continuation::Command> processDeclaration(const IR::Type_Declaration *cstrType,
33 size_t blockIdx) const;
34
35 public:
36 EBPFProgramInfo(const TestgenCompilerResult &compilerResult,
38
40 [[nodiscard]] const ArchSpec &getArchSpec() const override;
41
44 const;
45
46 [[nodiscard]] const IR::StateVariable &getTargetInputPortVar() const override;
47
48 [[nodiscard]] const IR::StateVariable &getTargetOutputPortVar() const override;
49
50 [[nodiscard]] const IR::Expression *dropIsActive() const override;
51
52 [[nodiscard]] const IR::Type_Bits *getParserErrorType() const override;
53
55 static const ArchSpec ARCH_SPEC;
56
57 DECLARE_TYPEINFO(EBPFProgramInfo, ProgramInfo);
58};
59
60} // namespace P4::P4Tools::P4Testgen::EBPF
61
62#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_EBPF_PROGRAM_INFO_H_ */
Specifies a canonical representation of the target pipeline as documented in P4 code.
Definition p4tools/common/lib/arch_spec.h:19
EBPFProgramInfo(const TestgenCompilerResult &compilerResult, ordered_map< cstring, const IR::Type_Declaration * > inputBlocks)
Definition targets/ebpf/program_info.cpp:37
const IR::StateVariable & getTargetOutputPortVar() const override
Definition targets/ebpf/program_info.cpp:119
const IR::StateVariable & getTargetInputPortVar() const override
Definition targets/ebpf/program_info.cpp:114
static const ArchSpec ARCH_SPEC
Definition targets/ebpf/program_info.h:55
const ordered_map< cstring, const IR::Type_Declaration * > * getProgrammableBlocks() const
Definition targets/ebpf/program_info.cpp:70
const ArchSpec & getArchSpec() const override
Definition targets/ebpf/program_info.cpp:68
const IR::Expression * dropIsActive() const override
Definition targets/ebpf/program_info.cpp:124
Extends the CompilerResult with the associated P4RuntimeApi.
Definition modules/testgen/core/compiler_result.h:17
Definition ordered_map.h:32