P4C
The P4 Compiler
Loading...
Searching...
No Matches
symbolic_variables.h
1/*
2 * SPDX-FileCopyrightText: 2024 The P4 Language Consortium
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef BACKENDS_P4TOOLS_COMMON_CONTROL_PLANE_SYMBOLIC_VARIABLES_H_
8#define BACKENDS_P4TOOLS_COMMON_CONTROL_PLANE_SYMBOLIC_VARIABLES_H_
9
10#include "ir/ir.h"
11#include "ir/irutils.h"
12
13namespace P4::P4Tools {
14
18namespace ControlPlaneState {
19
22const IR::SymbolicVariable *getTableActive(cstring tableName);
23
26const IR::SymbolicVariable *getTableKey(cstring tableName, cstring keyFieldName,
27 const IR::Type *type);
28
33const IR::SymbolicVariable *getTableTernaryMask(cstring tableName, cstring keyFieldName,
34 const IR::Type *type);
35
40const IR::SymbolicVariable *getTableMatchLpmPrefix(cstring tableName, cstring keyFieldName,
41 const IR::Type *type);
42
45const IR::SymbolicVariable *getTableActionArgument(cstring tableName, cstring actionName,
46 cstring parameterName, const IR::Type *type);
47
49const IR::SymbolicVariable *getTableActionChoice(cstring tableName);
50
51} // namespace ControlPlaneState
52
53namespace Bmv2ControlPlaneState {
54
57const IR::SymbolicVariable *getCloneActive();
58
61const IR::SymbolicVariable *getCloneSessionId(const IR::Type *type);
62
66std::pair<const IR::SymbolicVariable *, const IR::SymbolicVariable *> getTableRange(
67 cstring tableName, cstring keyFieldName, const IR::Type *type);
68
69} // namespace Bmv2ControlPlaneState
70
71} // namespace P4::P4Tools
72
73#endif /* BACKENDS_P4TOOLS_COMMON_CONTROL_PLANE_SYMBOLIC_VARIABLES_H_ */
Definition symbolic_variables.cpp:12
const IR::SymbolicVariable * getTableActive(cstring tableName)
Definition symbolic_variables.cpp:14
const IR::SymbolicVariable * getTableTernaryMask(cstring tableName, cstring keyFieldName, const IR::Type *type)
Definition symbolic_variables.cpp:25
const IR::SymbolicVariable * getTableKey(cstring tableName, cstring keyFieldName, const IR::Type *type)
Definition symbolic_variables.cpp:19
const IR::SymbolicVariable * getTableActionChoice(cstring tableName)
Definition symbolic_variables.cpp:43
const IR::SymbolicVariable * getTableMatchLpmPrefix(cstring tableName, cstring keyFieldName, const IR::Type *type)
Definition symbolic_variables.cpp:31
const IR::SymbolicVariable * getTableActionArgument(cstring tableName, cstring actionName, cstring parameterName, const IR::Type *type)
Definition symbolic_variables.cpp:37
Definition common/compiler/compiler_result.cpp:7