17#ifndef BACKENDS_EBPF_PSA_EXTERNS_EBPFPSACHECKSUM_H_
18#define BACKENDS_EBPF_PSA_EXTERNS_EBPFPSACHECKSUM_H_
20#include "backends/ebpf/ebpfObject.h"
21#include "ebpfPsaHashAlgorithm.h"
28 const IR::Declaration_Instance *declaration;
33 EBPFChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
36 EBPFChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
cstring name,
40 if (engine) engine->emitVariables(builder, declaration);
44 const IR::MethodCallExpression *expr,
Visitor *visitor);
47class EBPFInternetChecksumPSA :
public EBPFChecksumPSA {
49 EBPFInternetChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
51 : EBPFChecksumPSA(program, block, name,
52 EBPFHashAlgorithmPSA::HashAlgorithm::ONES_COMPLEMENT16) {}
54 void processMethod(
CodeBuilder *builder,
cstring method,
const IR::MethodCallExpression *expr,
58class EBPFHashPSA :
public EBPFChecksumPSA {
60 EBPFHashPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
cstring name)
61 : EBPFChecksumPSA(program, block, name) {}
63 void processMethod(
CodeBuilder *builder,
cstring method,
const IR::MethodCallExpression *expr,
69 void emitGetMethod(
CodeBuilder *builder,
const IR::MethodCallExpression *expr,
Definition ebpf/codeGen.h:33
Definition ebpfPsaHashAlgorithm.h:26
void calculateHash(CodeBuilder *builder, const IR::MethodCallExpression *expr, Visitor *visitor)
This method calculates a hash value and saves it to the registerVar.
Definition ebpfPsaChecksum.cpp:100
Base class for EBPF objects.
Definition ebpfObject.h:31
Definition ebpfProgram.h:39
Definition codeGen.cpp:25