P4C
The P4 Compiler
Loading...
Searching...
No Matches
dpdk/backend.h
1/*
2 * Copyright 2020 Intel Corp.
3 * SPDX-FileCopyrightText: 2020 Intel Corp.
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef BACKENDS_DPDK_BACKEND_H_
9#define BACKENDS_DPDK_BACKEND_H_
10#include "p4/config/v1/p4info.pb.h"
11
12namespace p4configv1 = ::p4::config::v1;
13#undef setbit
14
15#include "frontends/common/constantFolding.h"
16#include "frontends/common/resolveReferences/referenceMap.h"
17#include "frontends/p4/coreLibrary.h"
18#include "frontends/p4/enumInstance.h"
19#include "frontends/p4/evaluator/evaluator.h"
20#include "frontends/p4/methodInstance.h"
21#include "frontends/p4/simplify.h"
22#include "frontends/p4/typeMap.h"
23#include "frontends/p4/unusedDeclarations.h"
24#include "ir/ir.h"
25#include "lib/big_int_util.h"
26#include "lib/json.h"
27#include "options.h"
28
29namespace P4::DPDK {
30class DpdkBackend {
31 DpdkOptions &options;
32 P4::ReferenceMap *refMap;
33 P4::TypeMap *typeMap;
34 const p4configv1::P4Info &p4info;
35 const IR::DpdkAsmProgram *dpdk_program = nullptr;
36
37 public:
38 void convert(const IR::ToplevelBlock *tlb);
39 DpdkBackend(DpdkOptions &options, P4::ReferenceMap *refMap, P4::TypeMap *typeMap,
40 const p4configv1::P4Info &p4info)
41 : options(options), refMap(refMap), typeMap(typeMap), p4info(p4info) {}
42 void codegen(std::ostream &) const;
43};
44
45} // namespace P4::DPDK
46
47#endif /* BACKENDS_DPDK_BACKEND_H_ */
void convert(const IR::ToplevelBlock *tlb)
Definition dpdk/backend.cpp:28
Definition backends/dpdk/options.h:15
Class used to encode maps from paths to declarations.
Definition referenceMap.h:67
Definition typeMap.h:32
Definition dpdk/backend.cpp:26