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
14namespace P4::EBPF {
15
17
18class 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,
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_ */
Definition ebpf/codeGen.h:33
Definition ebpfPsaDeparser.h:21
Base class for EBPF objects.
Definition ebpfObject.h:31
Definition ebpfProgram.h:30
Base class for EBPF types.
Definition ebpfType.h:29
Definition visitor.h:418
Definition cstring.h:85
Definition codeGen.cpp:25