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 "backends/tofino/bf-p4c/specs/phv.h"
23#include "ir/json_generator.h"
24
25namespace P4 {
26class JSONGenerator;
27class JSONLoader;
28} // namespace P4
29
30namespace PHV {
31
32class SerializableContainer : public Container {
33 SerializableContainer(Kind k, Size s, unsigned i) : Container(k, s, i) {}
34
35 public:
36 SerializableContainer() = default;
37 explicit SerializableContainer(const Container &container) : Container(container) {}
38
41 SerializableContainer(const char *name, bool abort_if_invalid = true)
42 : Container(name, abort_if_invalid) {}
43
46 SerializableContainer(PHV::Type t, unsigned index) : Container(t, index) {}
47
49 void toJSON(P4::JSONGenerator &json) const;
51};
52
53} // namespace PHV
54
55#endif /* BACKENDS_TOFINO_BF_P4C_PHV_PHV_H_ */
Definition json_generator.h:39
Definition json_loader.h:41
Container()
Definition bf-p4c/specs/phv.h:183
Definition bf-p4c/phv/phv.h:32
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:46
Definition bf-p4c/specs/phv.h:109
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
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