P4C
The P4 Compiler
Loading...
Searching...
No Matches
bf-p4c/phv/phv.h
1
18
19#ifndef BACKENDS_TOFINO_BF_P4C_PHV_PHV_H_
20#define BACKENDS_TOFINO_BF_P4C_PHV_PHV_H_
21
22#include <boost/functional/hash.hpp>
23
24#include "backends/tofino/bf-p4c/specs/phv.h"
25#include "ir/json_generator.h"
26
27namespace P4 {
28class JSONGenerator;
29class JSONLoader;
30} // namespace P4
31
32namespace PHV {
33
34class SerializableContainer : public Container {
35 SerializableContainer(Kind k, Size s, unsigned i) : Container(k, s, i) {}
36
37 public:
38 SerializableContainer() = default;
39 explicit SerializableContainer(const Container &container) : Container(container) {}
40
43 SerializableContainer(const char *name, bool abort_if_invalid = true)
44 : Container(name, abort_if_invalid) {}
45
48 SerializableContainer(PHV::Type t, unsigned index) : Container(t, index) {}
49
51 void toJSON(P4::JSONGenerator &json) const;
53};
54
55} // namespace PHV
56
57#endif /* BACKENDS_TOFINO_BF_P4C_PHV_PHV_H_ */
Definition json_generator.h:30
Definition json_loader.h:34
Container()
Definition bf-p4c/specs/phv.h:183
Definition bf-p4c/phv/phv.h:34
void toJSON(P4::JSONGenerator &json) const
JSON serialization/deserialization.
Definition bf-p4c/phv/phv.cpp:29
SerializableContainer(PHV::Type t, unsigned index)
Definition bf-p4c/phv/phv.h:48
Definition bf-p4c/specs/phv.h:109
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13
The namespace encapsulating PHV-related stuff.
Definition bf-p4c/mau/gateway.h:32
Size
all possible PHV container sizes in BFN devices
Definition bf-p4c/specs/phv.h:105
Kind
Definition bf-p4c/specs/phv.h:39
Definition bson.cpp:69