P4C
The P4 Compiler
Loading...
Searching...
No Matches
top_level.h
1
17
18
#ifndef BACKENDS_TOFINO_BF_ASM_TOP_LEVEL_H_
19
#define BACKENDS_TOFINO_BF_ASM_TOP_LEVEL_H_
20
21
#include "backends/tofino/bf-asm/json.h"
22
#include "backends/tofino/bf-asm/target.h"
23
24
template
<
class
REGSET>
25
class
TopLevelRegs
;
26
27
class
TopLevel {
28
protected
:
29
TopLevel();
30
31
public
:
32
static
TopLevel *
all
;
33
virtual
~TopLevel();
34
virtual
void
output(
json::map
&) = 0;
35
static
void
output_all(
json::map
&ctxtJson) {
all
->output(ctxtJson); }
36
template
<
class
T>
37
static
TopLevelRegs<typename T::register_type>
*regs();
38
#define SET_MAU_STAGE(TARGET) \
39
virtual void set_mau_stage(int, const char *, Target::TARGET::mau_regs *, bool) { \
40
BUG("register mismatch"); \
41
}
42
FOR_ALL_REGISTER_SETS(SET_MAU_STAGE)
43
};
44
45
template
<
class
REGSET>
46
class
TopLevelRegs :
public
TopLevel,
public
REGSET::top_level_regs {
47
public
:
48
TopLevelRegs();
49
~TopLevelRegs();
50
51
void
output(
json::map
&);
52
void
set_mau_stage(
int
stage,
const
char
*file,
typename
REGSET::mau_regs *regs,
53
bool
egress_only);
54
};
55
56
template
<
class
T>
57
TopLevelRegs<typename T::register_type>
*TopLevel::regs() {
58
return
dynamic_cast<
TopLevelRegs<typename T::register_type>
*
>
(
all
);
59
}
60
61
#endif
/* BACKENDS_TOFINO_BF_ASM_TOP_LEVEL_H_ */
TopLevel::all
static TopLevel * all
Definition
top_level.h:32
TopLevelRegs
Definition
top_level.h:46
json::map
Definition
backends/tofino/bf-asm/json.h:300
backends
tofino
bf-asm
top_level.h
Generated by
1.13.2