P4C
The P4 Compiler
Loading...
Searching...
No Matches
ubpfRegister.h
1/*
2 * Copyright 2019 Orange
3 * SPDX-FileCopyrightText: 2019 Orange
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef BACKENDS_UBPF_UBPFREGISTER_H_
9#define BACKENDS_UBPF_UBPFREGISTER_H_
10
11#include "ubpfTable.h"
12#include "ubpfType.h"
13
14namespace P4::UBPF {
15
16class UBPFRegister final : public UBPFTableBase {
17 public:
18 UBPFRegister(const UBPFProgram *program, const IR::ExternBlock *block, cstring name,
19 EBPF::CodeGenInspector *codeGen);
20
21 void emitInstance(EBPF::CodeBuilder *builder);
22 void emitRegisterRead(EBPF::CodeBuilder *builder, const IR::MethodCallExpression *expression);
23 void emitRegisterWrite(EBPF::CodeBuilder *builder, const IR::MethodCallExpression *expression);
24 void emitMethodInvocation(EBPF::CodeBuilder *builder, const P4::ExternMethod *method);
25 void emitKeyInstance(EBPF::CodeBuilder *builder, const IR::MethodCallExpression *expression);
26 cstring emitValueInstanceIfNeeded(EBPF::CodeBuilder *builder, const IR::Argument *arg_value);
27};
28
29} // namespace P4::UBPF
30
31#endif /* BACKENDS_UBPF_UBPFREGISTER_H_ */
Definition ebpf/codeGen.h:33
Definition ebpf/codeGen.h:41
Definition methodInstance.h:168
Definition ubpfProgram.h:28
Definition cstring.h:85