Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/tools/testing/selftests/bpf/progs/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  struct_ops_module.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2024 Meta Platforms, Inc. and affiliates. */
#include <vmlinux.h>
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
#include "../test_kmods/bpf_testmod.h"

char _license[] SEC("license") = "GPL";

int test_1_result = 0;
int test_2_result = 0;

SEC("struct_ops/test_1")
int BPF_PROG(test_1)
{
 test_1_result = 0xdeadbeef;
 return 0;
}

SEC("struct_ops/test_2")
void BPF_PROG(test_2, int a, int b)
{
 test_2_result = a + b;
}

SEC("?struct_ops/test_3")
int BPF_PROG(test_3, int a, int b)
{
 test_2_result = a + b + 3;
 return a + b + 3;
}

SEC(".struct_ops.link")
struct bpf_testmod_ops testmod_1 = {
 .test_1 = (void *)test_1,
 .test_2 = (void *)test_2,
 .data = 0x1,
};

SEC("struct_ops/test_2")
void BPF_PROG(test_2_v2, int a, int b)
{
 test_2_result = a * b;
}

struct bpf_testmod_ops___v2 {
 int (*test_1)(void);
 void (*test_2)(int a, int b);
 int (*test_maybe_null)(int dummy, struct task_struct *task);
};

SEC(".struct_ops.link")
struct bpf_testmod_ops___v2 testmod_2 = {
 .test_1 = (void *)test_1,
 .test_2 = (void *)test_2_v2,
};

struct bpf_testmod_ops___zeroed {
 int (*test_1)(void);
 void (*test_2)(int a, int b);
 int (*test_maybe_null)(int dummy, struct task_struct *task);
 void (*zeroed_op)(int a, int b);
 int zeroed;
};

SEC("struct_ops/test_3")
int BPF_PROG(zeroed_op)
{
 return 1;
}

SEC(".struct_ops.link")
struct bpf_testmod_ops___zeroed testmod_zeroed = {
 .test_1 = (void *)test_1,
 .test_2 = (void *)test_2_v2,
 .zeroed_op = (void *)zeroed_op,
};

struct bpf_testmod_ops___incompatible {
 int (*test_1)(void);
 void (*test_2)(int *a);
 int data;
};

SEC(".struct_ops.link")
struct bpf_testmod_ops___incompatible testmod_incompatible = {
 .test_1 = (void *)test_1,
 .test_2 = (void *)test_2,
 .data = 3,
};

Messung V0.5
C=95 H=95 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.