P4C
The P4 Compiler
Loading...
Searching...
No Matches
ebpfPsaDigest.h
1
/*
2
* SPDX-FileCopyrightText: 2022 Orange
3
* Copyright 2022-present Orange
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef BACKENDS_EBPF_PSA_EXTERNS_EBPFPSADIGEST_H_
9
#define BACKENDS_EBPF_PSA_EXTERNS_EBPFPSADIGEST_H_
10
11
#include "backends/ebpf/ebpfObject.h"
12
#include "backends/ebpf/ebpfProgram.h"
13
14
namespace
P4::EBPF
{
15
16
class
DeparserBodyTranslatorPSA
;
17
18
class
EBPFDigestPSA :
public
EBPFObject
{
19
private
:
20
cstring
instanceName;
21
const
EBPFProgram
*program;
22
cstring
valueTypeName;
23
const
IR::Declaration_Instance *declaration;
26
int
maxDigestQueueSize = 128;
27
28
public
:
29
EBPFType
*valueType;
30
EBPFDigestPSA(
const
EBPFProgram
*program,
const
IR::Declaration_Instance *di);
31
32
void
emitTypes(
CodeBuilder
*builder);
33
void
emitInstance(
CodeBuilder
*builder)
const
;
34
void
processMethod(
CodeBuilder
*builder,
cstring
method,
const
IR::MethodCallExpression *expr,
35
DeparserBodyTranslatorPSA
*visitor);
36
37
virtual
void
emitPushElement(
CodeBuilder
*builder,
const
IR::Expression *elem,
38
Inspector
*codegen)
const
;
39
virtual
void
emitPushElement(
CodeBuilder
*builder,
cstring
elem)
const
;
40
};
41
42
}
// namespace P4::EBPF
43
44
#endif
/* BACKENDS_EBPF_PSA_EXTERNS_EBPFPSADIGEST_H_ */
P4::EBPF::CodeBuilder
Definition
ebpf/codeGen.h:33
P4::EBPF::DeparserBodyTranslatorPSA
Definition
ebpfPsaDeparser.h:21
P4::EBPF::EBPFObject
Base class for EBPF objects.
Definition
ebpfObject.h:31
P4::EBPF::EBPFProgram
Definition
ebpfProgram.h:30
P4::EBPF::EBPFType
Base class for EBPF types.
Definition
ebpfType.h:29
P4::Inspector
Definition
visitor.h:418
P4::cstring
Definition
cstring.h:85
P4::EBPF
Definition
codeGen.cpp:25
backends
ebpf
psa
externs
ebpfPsaDigest.h
Generated by
1.13.2