8#ifndef BACKENDS_DPDK_DPDKMETADATA_H_
9#define BACKENDS_DPDK_DPDKMETADATA_H_
12#include "frontends/common/resolveReferences/referenceMap.h"
17class IsDirectionMetadataUsed :
public Inspector {
18 bool &is_direction_used;
21 explicit IsDirectionMetadataUsed(
bool &is_direction_used)
22 : is_direction_used(is_direction_used) {}
23 bool preorder(
const IR::Member *m)
override {
24 if (!is_direction_used && isDirection(m)) {
25 is_direction_used =
true;
46 dirToDirMapping.insert(std::make_pair(
cstring(
"pna_main_input_metadata_direction"),
47 cstring(
"pna_main_input_metadata_direction")));
48 dirToDirMapping.insert(std::make_pair(
cstring(
"pna_pre_input_metadata_direction"),
49 cstring(
"pna_main_input_metadata_direction")));
50 dirToDirMapping.insert(std::make_pair(
cstring(
"pna_main_parser_input_metadata_direction"),
51 cstring(
"pna_main_input_metadata_direction")));
52 inputToInputPortMapping.insert(
53 std::make_pair(
cstring(
"pna_main_input_metadata_input_port"),
54 cstring(
"pna_main_input_metadata_input_port")));
55 inputToInputPortMapping.insert(
56 std::make_pair(
cstring(
"pna_pre_input_metadata_direction"),
57 cstring(
"pna_main_input_metadata_input_port")));
58 inputToInputPortMapping.insert(
59 std::make_pair(
cstring(
"pna_main_parser_input_metadata_direction"),
60 cstring(
"pna_main_input_metadata_input_port")));
62 const IR::Node *preorder(IR::DpdkAsmProgram *p)
override;
63 const IR::Node *preorder(IR::Member *m)
override;
67 IR::DpdkListStatement *replaceDirection(IR::DpdkListStatement *l);
75class PrependPassRecircId :
public Transform {
79 PrependPassRecircId() {}
80 bool isPass(
const IR::Member *m);
81 const IR::Node *postorder(IR::DpdkAction *a)
override;
82 const IR::Node *postorder(IR::DpdkListStatement *l)
override;
DirectionToRegRead()
Definition dpdkMetadata.h:41
void uniqueNames(IR::DpdkAsmProgram *p)
Make sure new decls and fields name are unique.
Definition dpdkMetadata.cpp:15
IR::DpdkExternDeclaration * addRegDeclInstance(cstring instanceName)
Create and add register declaration instance to program.
Definition dpdkMetadata.cpp:45
bool isPass(const IR::Member *m)
Definition dpdkMetadata.cpp:89
Definition indexed_vector.h:31
Definition ordered_map.h:32
Definition ordered_set.h:32
Definition dpdk/backend.cpp:26