P4C
The P4 Compiler
Loading...
Searching...
No Matches
ubpfParser.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_UBPFPARSER_H_
9#define BACKENDS_UBPF_UBPFPARSER_H_
10
11#include "backends/ebpf/ebpfParser.h"
12#include "ir/ir.h"
13#include "ubpfType.h"
14
15namespace P4::UBPF {
16
17class UBPFParserState : public EBPF::EBPFParserState {
18 public:
19 UBPFParserState(const IR::ParserState *state, EBPF::EBPFParser *parser)
20 : EBPF::EBPFParserState(state, parser) {}
21 void emit(EBPF::CodeBuilder *builder);
22};
23
24class UBPFParser : public EBPF::EBPFParser {
25 public:
26 std::vector<UBPFParserState *> states;
27 const IR::Parameter *metadata;
28 EBPF::EBPFType *metadataType;
29
30 UBPFParser(const EBPF::EBPFProgram *program, const IR::ParserBlock *block,
31 const P4::TypeMap *typeMap)
32 : EBPF::EBPFParser(program, block, typeMap) {}
33
34 void emit(EBPF::CodeBuilder *builder);
35 bool build();
36};
37
38} // namespace P4::UBPF
39
40#endif /* BACKENDS_UBPF_UBPFPARSER_H_ */
Definition ebpf/codeGen.h:33
Definition ebpfParser.h:81
Definition ebpfParser.h:69
Definition ebpfProgram.h:30
Base class for EBPF types.
Definition ebpfType.h:29
Definition typeMap.h:32