7#ifndef BACKENDS_EBPF_PSA_EXTERNS_EBPFPSACHECKSUM_H_
8#define BACKENDS_EBPF_PSA_EXTERNS_EBPFPSACHECKSUM_H_
10#include "backends/ebpf/ebpfObject.h"
11#include "ebpfPsaHashAlgorithm.h"
18 const IR::Declaration_Instance *declaration;
23 EBPFChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
26 EBPFChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
cstring name,
30 if (engine) engine->emitVariables(builder, declaration);
34 const IR::MethodCallExpression *expr,
Visitor *visitor);
37class EBPFInternetChecksumPSA :
public EBPFChecksumPSA {
39 EBPFInternetChecksumPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
41 : EBPFChecksumPSA(program, block, name,
42 EBPFHashAlgorithmPSA::HashAlgorithm::ONES_COMPLEMENT16) {}
44 void processMethod(
CodeBuilder *builder,
cstring method,
const IR::MethodCallExpression *expr,
48class EBPFHashPSA :
public EBPFChecksumPSA {
50 EBPFHashPSA(
const EBPFProgram *program,
const IR::Declaration_Instance *block,
cstring name)
51 : EBPFChecksumPSA(program, block, name) {}
53 void processMethod(
CodeBuilder *builder,
cstring method,
const IR::MethodCallExpression *expr,
59 void emitGetMethod(
CodeBuilder *builder,
const IR::MethodCallExpression *expr,
Definition ebpf/codeGen.h:33
Definition ebpfPsaHashAlgorithm.h:16
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:88
Base class for EBPF objects.
Definition ebpfObject.h:31
Definition ebpfProgram.h:30
Definition codeGen.cpp:25