From cf31ee068efd45891b12364979227e83d294633f Mon Sep 17 00:00:00 2001 From: rabbitstack Date: Wed, 16 Sep 2026 18:20:18 +0200 Subject: [PATCH 1/2] feat(build): Add Makefile for build targets The Makefile script automates the process of compiling the eBPF programs, Fibratus binary, running tests, formatting, etc. The bpf2go now drops all generated Go files + ebpf bytecode inside a separate bpf package making it easier to navigate and distinguish the generated code. --- .github/workflows/linux-port.yml | 5 +- .gitignore | 1 + Makefile | 58 ++++++++++++ internal/ebpf/{ => bpf}/clone_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/clone_bpfeb.o | Bin 0 -> 42672 bytes internal/ebpf/{ => bpf}/clone_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/clone_bpfel.o | Bin 0 -> 42288 bytes internal/ebpf/{ => bpf}/ctl_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/ctl_bpfeb.o | Bin 0 -> 20648 bytes internal/ebpf/{ => bpf}/ctl_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/ctl_bpfel.o | Bin 0 -> 20264 bytes internal/ebpf/{ => bpf}/execve_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/execve_bpfeb.o | Bin 0 -> 21424 bytes internal/ebpf/{ => bpf}/execve_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/execve_bpfel.o | Bin 0 -> 21232 bytes internal/ebpf/{ => bpf}/exit_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/exit_bpfeb.o | Bin 0 -> 7720 bytes internal/ebpf/{ => bpf}/exit_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/exit_bpfel.o | Bin 0 -> 7720 bytes internal/ebpf/{ => bpf}/file_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/file_bpfeb.o | Bin 0 -> 72800 bytes internal/ebpf/{ => bpf}/file_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/file_bpfel.o | Bin 0 -> 72032 bytes internal/ebpf/{ => bpf}/mem_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/mem_bpfeb.o | Bin 0 -> 30584 bytes internal/ebpf/{ => bpf}/mem_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/mem_bpfel.o | Bin 0 -> 30296 bytes internal/ebpf/{ => bpf}/net_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/net_bpfeb.o | Bin 0 -> 31896 bytes internal/ebpf/{ => bpf}/net_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/net_bpfel.o | Bin 0 -> 31608 bytes internal/ebpf/{ => bpf}/prociter_bpfeb.go | 84 +++++++++--------- internal/ebpf/bpf/prociter_bpfeb.o | Bin 0 -> 7000 bytes internal/ebpf/{ => bpf}/prociter_bpfel.go | 84 +++++++++--------- internal/ebpf/bpf/prociter_bpfel.o | Bin 0 -> 7000 bytes .../c/{proc_iter.bpf.c => prociter.bpf.c} | 0 internal/ebpf/clone_bpfeb.o | Bin 45192 -> 0 bytes internal/ebpf/clone_bpfel.o | Bin 44808 -> 0 bytes internal/ebpf/ctl_bpfeb.o | Bin 22144 -> 0 bytes internal/ebpf/ctl_bpfel.o | Bin 21760 -> 0 bytes internal/ebpf/execve_bpfeb.o | Bin 22768 -> 0 bytes internal/ebpf/execve_bpfel.o | Bin 22576 -> 0 bytes internal/ebpf/exit_bpfeb.o | Bin 7872 -> 0 bytes internal/ebpf/exit_bpfel.o | Bin 7872 -> 0 bytes internal/ebpf/file_bpfeb.o | Bin 77912 -> 0 bytes internal/ebpf/file_bpfel.o | Bin 77144 -> 0 bytes internal/ebpf/gen.go | 26 ------ internal/ebpf/generate.sh | 40 --------- internal/ebpf/loader.go | 63 ++++++------- internal/ebpf/mem_bpfeb.o | Bin 32216 -> 0 bytes internal/ebpf/mem_bpfel.o | Bin 31928 -> 0 bytes internal/ebpf/net_bpfeb.o | Bin 33600 -> 0 bytes internal/ebpf/net_bpfel.o | Bin 33312 -> 0 bytes internal/ebpf/prociter_bpfeb.o | Bin 7136 -> 0 bytes internal/ebpf/prociter_bpfel.o | Bin 7136 -> 0 bytes 55 files changed, 765 insertions(+), 772 deletions(-) create mode 100644 Makefile rename internal/ebpf/{ => bpf}/clone_bpfeb.go (68%) create mode 100644 internal/ebpf/bpf/clone_bpfeb.o rename internal/ebpf/{ => bpf}/clone_bpfel.go (68%) create mode 100644 internal/ebpf/bpf/clone_bpfel.o rename internal/ebpf/{ => bpf}/ctl_bpfeb.go (56%) create mode 100644 internal/ebpf/bpf/ctl_bpfeb.o rename internal/ebpf/{ => bpf}/ctl_bpfel.go (57%) create mode 100644 internal/ebpf/bpf/ctl_bpfel.o rename internal/ebpf/{ => bpf}/execve_bpfeb.go (61%) create mode 100644 internal/ebpf/bpf/execve_bpfeb.o rename internal/ebpf/{ => bpf}/execve_bpfel.go (62%) create mode 100644 internal/ebpf/bpf/execve_bpfel.o rename internal/ebpf/{ => bpf}/exit_bpfeb.go (57%) create mode 100644 internal/ebpf/bpf/exit_bpfeb.o rename internal/ebpf/{ => bpf}/exit_bpfel.go (57%) create mode 100644 internal/ebpf/bpf/exit_bpfel.o rename internal/ebpf/{ => bpf}/file_bpfeb.go (74%) create mode 100644 internal/ebpf/bpf/file_bpfeb.o rename internal/ebpf/{ => bpf}/file_bpfel.go (74%) create mode 100644 internal/ebpf/bpf/file_bpfel.o rename internal/ebpf/{ => bpf}/mem_bpfeb.go (66%) create mode 100644 internal/ebpf/bpf/mem_bpfeb.o rename internal/ebpf/{ => bpf}/mem_bpfel.go (67%) create mode 100644 internal/ebpf/bpf/mem_bpfel.o rename internal/ebpf/{ => bpf}/net_bpfeb.go (65%) create mode 100644 internal/ebpf/bpf/net_bpfeb.o rename internal/ebpf/{ => bpf}/net_bpfel.go (65%) create mode 100644 internal/ebpf/bpf/net_bpfel.o rename internal/ebpf/{ => bpf}/prociter_bpfeb.go (55%) create mode 100644 internal/ebpf/bpf/prociter_bpfeb.o rename internal/ebpf/{ => bpf}/prociter_bpfel.go (56%) create mode 100644 internal/ebpf/bpf/prociter_bpfel.o rename internal/ebpf/c/{proc_iter.bpf.c => prociter.bpf.c} (100%) delete mode 100644 internal/ebpf/clone_bpfeb.o delete mode 100644 internal/ebpf/clone_bpfel.o delete mode 100644 internal/ebpf/ctl_bpfeb.o delete mode 100644 internal/ebpf/ctl_bpfel.o delete mode 100644 internal/ebpf/execve_bpfeb.o delete mode 100644 internal/ebpf/execve_bpfel.o delete mode 100644 internal/ebpf/exit_bpfeb.o delete mode 100644 internal/ebpf/exit_bpfel.o delete mode 100644 internal/ebpf/file_bpfeb.o delete mode 100644 internal/ebpf/file_bpfel.o delete mode 100644 internal/ebpf/gen.go delete mode 100755 internal/ebpf/generate.sh delete mode 100644 internal/ebpf/mem_bpfeb.o delete mode 100644 internal/ebpf/mem_bpfel.o delete mode 100644 internal/ebpf/net_bpfeb.o delete mode 100644 internal/ebpf/net_bpfel.o delete mode 100644 internal/ebpf/prociter_bpfeb.o delete mode 100644 internal/ebpf/prociter_bpfel.o diff --git a/.github/workflows/linux-port.yml b/.github/workflows/linux-port.yml index 31c68cf90..e9a9c62c9 100644 --- a/.github/workflows/linux-port.yml +++ b/.github/workflows/linux-port.yml @@ -35,9 +35,8 @@ jobs: clang --version - name: Check generation drift run: | - chmod +x internal/ebpf/generate.sh - ./internal/ebpf/generate.sh - git diff --exit-code -- internal/ebpf + make ebpf + git diff --exit-code -- internal/ebpf/bpf - name: Unit tests run: go test ./internal/ebpf ./internal/bootstrap ./pkg/event ./pkg/ps ./pkg/api ./pkg/util/signals - name: Privileged process source diff --git a/.gitignore b/.gitignore index d5623a6ba..263b19bde 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ cmd/fibratus/fibratus.exe cmd/fibratus/fibratus.syso +cmd/fibratus/fibratus cmd/systray/fibratus-systray.exe cmd/systray/fibratus-systray.syso diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..80cf47850 --- /dev/null +++ b/Makefile @@ -0,0 +1,58 @@ +.DEFAULT_GOAL := build + +SHELL=bash -o pipefail -e + +BPF2GO_VERSION := v0.20.0 + +# Specifies a list of build flags +TAGS ?= "" + +BPF_DIR := internal/ebpf + +BPF_FLAGS := \ + -go-package bpf \ + -output-dir $(BPF_DIR)/bpf \ + -cc clang \ + -target bpfel,bpfeb \ + -tags linux + +BPF_CFLAGS := \ + -I./$(BPF_DIR)/spike/c \ + -I./$(BPF_DIR)/c \ + -I./$(BPF_DIR)/c/common \ + -O2 \ + -g \ + -D__TARGET_ARCH_x86 + +# Find all eBPF sources. +BPF_SOURCES := $(wildcard $(BPF_DIR)/c/*.bpf.c) +BPF_NAMES := $(patsubst $(BPF_DIR)/c/%.bpf.c,%,$(BPF_SOURCES)) +BPF_TARGETS := $(foreach name,$(BPF_NAMES), \ + $(BPF_DIR)/$(name)_bpfel.go \ + $(BPF_DIR)/$(name)_bpfeb.go) + +CLANG ?= clang +GO ?= go +GOFMT ?= gofmt +BPF2GO ?= go run github.com/cilium/ebpf/cmd/bpf2go@$(BPF2GO_VERSION) + +.PHONY: ebpf +ebpf: $(BPF_TARGETS) +$(BPF_DIR)/%_bpfel.go $(BPF_DIR)/%_bpfeb.go &: $(BPF_DIR)/c/%.bpf.c + $(BPF2GO) $(BPF_FLAGS) -output-stem $* $(shell echo $* | sed 's/^./\U&/') $(BPF_DIR)/c/$*.bpf.c -- $(BPF_CFLAGS) + +.PHONY: build +build: + $(GO) build -tags $(TAGS) -o ./cmd/fibratus/fibratus ./cmd/fibratus/ + +.PHONY: fmt +fmt: + $(GOFMT) -e -s -l -w pkg cmd + +.PHONY: test +test: + $(GO) test ./... + +.PHONY: clean +clean: + rm -f cmd/fibratus/fibratus diff --git a/internal/ebpf/clone_bpfeb.go b/internal/ebpf/bpf/clone_bpfeb.go similarity index 68% rename from internal/ebpf/clone_bpfeb.go rename to internal/ebpf/bpf/clone_bpfeb.go index bca4d7573..e8366cd2a 100644 --- a/internal/ebpf/clone_bpfeb.go +++ b/internal/ebpf/bpf/clone_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type cloneScratchValue struct { +type CloneScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type cloneScratchValue struct { Aux [256]uint8 } -// loadClone returns the embedded CollectionSpec for clone. -func loadClone() (*ebpf.CollectionSpec, error) { +// LoadClone returns the embedded CollectionSpec for Clone. +func LoadClone() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_CloneBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load clone: %w", err) + return nil, fmt.Errorf("can't load Clone: %w", err) } return spec, err } -// loadCloneObjects loads clone and converts it into a struct. +// LoadCloneObjects loads Clone and converts it into a struct. // // The following types are suitable as obj argument: // -// *cloneObjects -// *clonePrograms -// *cloneMaps +// *CloneObjects +// *ClonePrograms +// *CloneMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadClone() +func LoadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadClone() if err != nil { return err } @@ -55,19 +55,19 @@ func loadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// cloneSpecs contains maps and programs before they are loaded into the kernel. +// CloneSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneSpecs struct { - cloneProgramSpecs - cloneMapSpecs - cloneVariableSpecs +type CloneSpecs struct { + CloneProgramSpecs + CloneMapSpecs + CloneVariableSpecs } -// cloneProgramSpecs contains programs before they are loaded into the kernel. +// CloneProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneProgramSpecs struct { +type CloneProgramSpecs struct { HandleSchedProcessFork *ebpf.ProgramSpec `ebpf:"handle_sched_process_fork"` HandleSysEnterClone *ebpf.ProgramSpec `ebpf:"handle_sys_enter_clone"` HandleSysEnterClone3 *ebpf.ProgramSpec `ebpf:"handle_sys_enter_clone3"` @@ -79,10 +79,10 @@ type cloneProgramSpecs struct { HandleSysExitVfork *ebpf.ProgramSpec `ebpf:"handle_sys_exit_vfork"` } -// cloneMapSpecs contains maps before they are loaded into the kernel. +// CloneMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneMapSpecs struct { +type CloneMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -90,32 +90,32 @@ type cloneMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// cloneVariableSpecs contains global variables before they are loaded into the kernel. +// CloneVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneVariableSpecs struct { +type CloneVariableSpecs struct { } -// cloneObjects contains all objects after they have been loaded into the kernel. +// CloneObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneObjects struct { - clonePrograms - cloneMaps - cloneVariables +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneObjects struct { + ClonePrograms + CloneMaps + CloneVariables } -func (o *cloneObjects) Close() error { +func (o *CloneObjects) Close() error { return _CloneClose( - &o.clonePrograms, - &o.cloneMaps, + &o.ClonePrograms, + &o.CloneMaps, ) } -// cloneMaps contains all maps after they have been loaded into the kernel. +// CloneMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneMaps struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -123,7 +123,7 @@ type cloneMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *cloneMaps) Close() error { +func (m *CloneMaps) Close() error { return _CloneClose( m.DropCount, m.Enabled, @@ -133,16 +133,16 @@ func (m *cloneMaps) Close() error { ) } -// cloneVariables contains all global variables after they have been loaded into the kernel. +// CloneVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneVariables struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneVariables struct { } -// clonePrograms contains all programs after they have been loaded into the kernel. +// ClonePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type clonePrograms struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type ClonePrograms struct { HandleSchedProcessFork *ebpf.Program `ebpf:"handle_sched_process_fork"` HandleSysEnterClone *ebpf.Program `ebpf:"handle_sys_enter_clone"` HandleSysEnterClone3 *ebpf.Program `ebpf:"handle_sys_enter_clone3"` @@ -154,7 +154,7 @@ type clonePrograms struct { HandleSysExitVfork *ebpf.Program `ebpf:"handle_sys_exit_vfork"` } -func (p *clonePrograms) Close() error { +func (p *ClonePrograms) Close() error { return _CloneClose( p.HandleSchedProcessFork, p.HandleSysEnterClone, diff --git a/internal/ebpf/bpf/clone_bpfeb.o b/internal/ebpf/bpf/clone_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..45c82786e0f3bbefd17a7cf424079da7e2846b67 GIT binary patch literal 42672 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 AlK=n! literal 0 HcmV?d00001 diff --git a/internal/ebpf/clone_bpfel.go b/internal/ebpf/bpf/clone_bpfel.go similarity index 68% rename from internal/ebpf/clone_bpfel.go rename to internal/ebpf/bpf/clone_bpfel.go index 64364fe61..7df15faff 100644 --- a/internal/ebpf/clone_bpfel.go +++ b/internal/ebpf/bpf/clone_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type cloneScratchValue struct { +type CloneScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type cloneScratchValue struct { Aux [256]uint8 } -// loadClone returns the embedded CollectionSpec for clone. -func loadClone() (*ebpf.CollectionSpec, error) { +// LoadClone returns the embedded CollectionSpec for Clone. +func LoadClone() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_CloneBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load clone: %w", err) + return nil, fmt.Errorf("can't load Clone: %w", err) } return spec, err } -// loadCloneObjects loads clone and converts it into a struct. +// LoadCloneObjects loads Clone and converts it into a struct. // // The following types are suitable as obj argument: // -// *cloneObjects -// *clonePrograms -// *cloneMaps +// *CloneObjects +// *ClonePrograms +// *CloneMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadClone() +func LoadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadClone() if err != nil { return err } @@ -55,19 +55,19 @@ func loadCloneObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// cloneSpecs contains maps and programs before they are loaded into the kernel. +// CloneSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneSpecs struct { - cloneProgramSpecs - cloneMapSpecs - cloneVariableSpecs +type CloneSpecs struct { + CloneProgramSpecs + CloneMapSpecs + CloneVariableSpecs } -// cloneProgramSpecs contains programs before they are loaded into the kernel. +// CloneProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneProgramSpecs struct { +type CloneProgramSpecs struct { HandleSchedProcessFork *ebpf.ProgramSpec `ebpf:"handle_sched_process_fork"` HandleSysEnterClone *ebpf.ProgramSpec `ebpf:"handle_sys_enter_clone"` HandleSysEnterClone3 *ebpf.ProgramSpec `ebpf:"handle_sys_enter_clone3"` @@ -79,10 +79,10 @@ type cloneProgramSpecs struct { HandleSysExitVfork *ebpf.ProgramSpec `ebpf:"handle_sys_exit_vfork"` } -// cloneMapSpecs contains maps before they are loaded into the kernel. +// CloneMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneMapSpecs struct { +type CloneMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -90,32 +90,32 @@ type cloneMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// cloneVariableSpecs contains global variables before they are loaded into the kernel. +// CloneVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type cloneVariableSpecs struct { +type CloneVariableSpecs struct { } -// cloneObjects contains all objects after they have been loaded into the kernel. +// CloneObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneObjects struct { - clonePrograms - cloneMaps - cloneVariables +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneObjects struct { + ClonePrograms + CloneMaps + CloneVariables } -func (o *cloneObjects) Close() error { +func (o *CloneObjects) Close() error { return _CloneClose( - &o.clonePrograms, - &o.cloneMaps, + &o.ClonePrograms, + &o.CloneMaps, ) } -// cloneMaps contains all maps after they have been loaded into the kernel. +// CloneMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneMaps struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -123,7 +123,7 @@ type cloneMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *cloneMaps) Close() error { +func (m *CloneMaps) Close() error { return _CloneClose( m.DropCount, m.Enabled, @@ -133,16 +133,16 @@ func (m *cloneMaps) Close() error { ) } -// cloneVariables contains all global variables after they have been loaded into the kernel. +// CloneVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type cloneVariables struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type CloneVariables struct { } -// clonePrograms contains all programs after they have been loaded into the kernel. +// ClonePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. -type clonePrograms struct { +// It can be passed to LoadCloneObjects or ebpf.CollectionSpec.LoadAndAssign. +type ClonePrograms struct { HandleSchedProcessFork *ebpf.Program `ebpf:"handle_sched_process_fork"` HandleSysEnterClone *ebpf.Program `ebpf:"handle_sys_enter_clone"` HandleSysEnterClone3 *ebpf.Program `ebpf:"handle_sys_enter_clone3"` @@ -154,7 +154,7 @@ type clonePrograms struct { HandleSysExitVfork *ebpf.Program `ebpf:"handle_sys_exit_vfork"` } -func (p *clonePrograms) Close() error { +func (p *ClonePrograms) Close() error { return _CloneClose( p.HandleSchedProcessFork, p.HandleSysEnterClone, diff --git a/internal/ebpf/bpf/clone_bpfel.o b/internal/ebpf/bpf/clone_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..e81f9adbdc06667c2660c4becf7547706dd020b4 GIT binary patch literal 42288 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 Qno3D0A5r@9xxF?26aQh{i~s-t literal 0 HcmV?d00001 diff --git a/internal/ebpf/ctl_bpfeb.go b/internal/ebpf/bpf/ctl_bpfeb.go similarity index 56% rename from internal/ebpf/ctl_bpfeb.go rename to internal/ebpf/bpf/ctl_bpfeb.go index c41298b34..16ff6f0b1 100644 --- a/internal/ebpf/ctl_bpfeb.go +++ b/internal/ebpf/bpf/ctl_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type ctlScratchValue struct { +type CtlScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type ctlScratchValue struct { Aux [256]uint8 } -// loadCtl returns the embedded CollectionSpec for ctl. -func loadCtl() (*ebpf.CollectionSpec, error) { +// LoadCtl returns the embedded CollectionSpec for Ctl. +func LoadCtl() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_CtlBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load ctl: %w", err) + return nil, fmt.Errorf("can't load Ctl: %w", err) } return spec, err } -// loadCtlObjects loads ctl and converts it into a struct. +// LoadCtlObjects loads Ctl and converts it into a struct. // // The following types are suitable as obj argument: // -// *ctlObjects -// *ctlPrograms -// *ctlMaps +// *CtlObjects +// *CtlPrograms +// *CtlMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadCtl() +func LoadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadCtl() if err != nil { return err } @@ -55,26 +55,26 @@ func loadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// ctlSpecs contains maps and programs before they are loaded into the kernel. +// CtlSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlSpecs struct { - ctlProgramSpecs - ctlMapSpecs - ctlVariableSpecs +type CtlSpecs struct { + CtlProgramSpecs + CtlMapSpecs + CtlVariableSpecs } -// ctlProgramSpecs contains programs before they are loaded into the kernel. +// CtlProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlProgramSpecs struct { +type CtlProgramSpecs struct { HandleSysExit *ebpf.ProgramSpec `ebpf:"handle_sys_exit"` } -// ctlMapSpecs contains maps before they are loaded into the kernel. +// CtlMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlMapSpecs struct { +type CtlMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type ctlMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// ctlVariableSpecs contains global variables before they are loaded into the kernel. +// CtlVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlVariableSpecs struct { +type CtlVariableSpecs struct { } -// ctlObjects contains all objects after they have been loaded into the kernel. +// CtlObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlObjects struct { - ctlPrograms - ctlMaps - ctlVariables +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlObjects struct { + CtlPrograms + CtlMaps + CtlVariables } -func (o *ctlObjects) Close() error { +func (o *CtlObjects) Close() error { return _CtlClose( - &o.ctlPrograms, - &o.ctlMaps, + &o.CtlPrograms, + &o.CtlMaps, ) } -// ctlMaps contains all maps after they have been loaded into the kernel. +// CtlMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlMaps struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type ctlMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *ctlMaps) Close() error { +func (m *CtlMaps) Close() error { return _CtlClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *ctlMaps) Close() error { ) } -// ctlVariables contains all global variables after they have been loaded into the kernel. +// CtlVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlVariables struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlVariables struct { } -// ctlPrograms contains all programs after they have been loaded into the kernel. +// CtlPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlPrograms struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlPrograms struct { HandleSysExit *ebpf.Program `ebpf:"handle_sys_exit"` } -func (p *ctlPrograms) Close() error { +func (p *CtlPrograms) Close() error { return _CtlClose( p.HandleSysExit, ) diff --git a/internal/ebpf/bpf/ctl_bpfeb.o b/internal/ebpf/bpf/ctl_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..fc3dd7f5939044c457c3b8b4fd92674a3037fbc2 GIT binary patch literal 20648 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 KGCrSgKlOjyBmkfQ literal 0 HcmV?d00001 diff --git a/internal/ebpf/ctl_bpfel.go b/internal/ebpf/bpf/ctl_bpfel.go similarity index 57% rename from internal/ebpf/ctl_bpfel.go rename to internal/ebpf/bpf/ctl_bpfel.go index d28873580..dc85991c4 100644 --- a/internal/ebpf/ctl_bpfel.go +++ b/internal/ebpf/bpf/ctl_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type ctlScratchValue struct { +type CtlScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type ctlScratchValue struct { Aux [256]uint8 } -// loadCtl returns the embedded CollectionSpec for ctl. -func loadCtl() (*ebpf.CollectionSpec, error) { +// LoadCtl returns the embedded CollectionSpec for Ctl. +func LoadCtl() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_CtlBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load ctl: %w", err) + return nil, fmt.Errorf("can't load Ctl: %w", err) } return spec, err } -// loadCtlObjects loads ctl and converts it into a struct. +// LoadCtlObjects loads Ctl and converts it into a struct. // // The following types are suitable as obj argument: // -// *ctlObjects -// *ctlPrograms -// *ctlMaps +// *CtlObjects +// *CtlPrograms +// *CtlMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadCtl() +func LoadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadCtl() if err != nil { return err } @@ -55,26 +55,26 @@ func loadCtlObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// ctlSpecs contains maps and programs before they are loaded into the kernel. +// CtlSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlSpecs struct { - ctlProgramSpecs - ctlMapSpecs - ctlVariableSpecs +type CtlSpecs struct { + CtlProgramSpecs + CtlMapSpecs + CtlVariableSpecs } -// ctlProgramSpecs contains programs before they are loaded into the kernel. +// CtlProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlProgramSpecs struct { +type CtlProgramSpecs struct { HandleSysExit *ebpf.ProgramSpec `ebpf:"handle_sys_exit"` } -// ctlMapSpecs contains maps before they are loaded into the kernel. +// CtlMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlMapSpecs struct { +type CtlMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type ctlMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// ctlVariableSpecs contains global variables before they are loaded into the kernel. +// CtlVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type ctlVariableSpecs struct { +type CtlVariableSpecs struct { } -// ctlObjects contains all objects after they have been loaded into the kernel. +// CtlObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlObjects struct { - ctlPrograms - ctlMaps - ctlVariables +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlObjects struct { + CtlPrograms + CtlMaps + CtlVariables } -func (o *ctlObjects) Close() error { +func (o *CtlObjects) Close() error { return _CtlClose( - &o.ctlPrograms, - &o.ctlMaps, + &o.CtlPrograms, + &o.CtlMaps, ) } -// ctlMaps contains all maps after they have been loaded into the kernel. +// CtlMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlMaps struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type ctlMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *ctlMaps) Close() error { +func (m *CtlMaps) Close() error { return _CtlClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *ctlMaps) Close() error { ) } -// ctlVariables contains all global variables after they have been loaded into the kernel. +// CtlVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlVariables struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlVariables struct { } -// ctlPrograms contains all programs after they have been loaded into the kernel. +// CtlPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. -type ctlPrograms struct { +// It can be passed to LoadCtlObjects or ebpf.CollectionSpec.LoadAndAssign. +type CtlPrograms struct { HandleSysExit *ebpf.Program `ebpf:"handle_sys_exit"` } -func (p *ctlPrograms) Close() error { +func (p *CtlPrograms) Close() error { return _CtlClose( p.HandleSysExit, ) diff --git a/internal/ebpf/bpf/ctl_bpfel.o b/internal/ebpf/bpf/ctl_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..3f289f5004b4e31af3935c2c8fa4b9214c39c156 GIT binary patch literal 20264 zcmeI3e{5UVb;qwM%aI(%X42Tz8gF@N(~Qm>nX%JWb<>n->r`2smT*%*>AI1$L|a5C zi6tpjiVBol+f3Nff$KI^C^C%cf=wIp2L}v@i?s;{mbJ@zy0Ux!>{GgYHdVyIK^mG0D z^B&nA?9aE~@&3rV-tatP_tA~nS#WTJ?$`Z1zUZ&Gk9K_}%iE$$gx(@`s zRx7X?JSSJDDf5&Qlv&Dg$_(WgWtuWY8BvZsrQPdP!Er5vZsP>xZiDN~dY$DxDfaCBE6+R2s~Mla zysCNxeZ>#T^W;_fP2mHG%L_rDFCjkyPcH1n6>`s=UVaJJ$a9#-s|BC!`hXwgd0>=&m*o)l>Uf;`8v}Eid_ogYI{|Twb8xS)kuppx;@b-&vsF zS)kuppx;@b-&vsFS)kuppx;@b-&vsFS)kuppx;^8#7fBi_bE3hdz6gM z6-<&#_znDd;Kp#Z7+{ z{K@~XKMLnG**CEe^;_5PAH(xP`jO|+wfv*ZSI1HRxb0_y-Rg5jo-Y!l-q#Rc5kUBZ zAaD+#|Gar_3w~{t{&SW7bCv#cmHu;;{&SW7bCv#cmHu;;{&SW7bCv#cmHu;;{&RKH z@4(G-+eBCgp4*n63;x)i*W|vC?>}+Bc=Ozb?`c?f4IZrgfKi-Z#%{;XU+c&JVr*zp~MT?r**Pwh_;e329lQ-4W6jn!yAWl-(Wfe`Aw!9kl$ju11W#2^!1_KcaWB~%pme-AF~N;q+^TtnEgu4=>a@!rRZqW{(QQOEmHsJs9Dkn!;q!Qc+qx# zLgp+XKDO?&jQxv<8ANMCN08S++(1OwFZWS=?C?hD^KQe|yFTJk#QzNS_B{Z(hz6MZ z?ljU3q(w^j8q*o1f0OA3(!a%Y2kCEUeaI%$8OSw6gk7??8N>^N!T!dP{%fQ~7YP@c zj*$L)rZY(YGt$Q)8;EZ(-9fsK^a)6rpo& zRUb^d>X@5abhVP3D!I98>3pt$sp;bS1x%m(fQ-FUtGSt(x!Gf3TSlkdFvgg#&U*bm z@tHHHa%WCG`pHz#fxRC2h#Rhbsf1OJQl+UQ(XvaQeCV1Dr%Gs(K6&Drm1?2V@oQF^ zTJ$}ouUQGJAv(^@Mjwr^;<=eZC0CxCduG0pE0&8hsr$H%N2B}1KBX>ajVAZq7u`QM zi!8s)#Us%B!L4%HHM=U+G3mh9mfm3L-bPZsYiw7MT2xE3=g-cc!>-nf)rBIo@V5ds zy!32w?p*5r;*q0~SDYhbVTW;tM6i2wk;Wk2!~6Xit8tpiVr+eFU=Hd^}w)7EO?U0cO_;Z+D*<^t8hTMN@*%rKVO>ix=OA2(i9L)ZA}#9w4$H8 zR7zoAj+CaTR%nRUk315cI36-F0P0Btl!h$yq)o$UAv?6@_}YWjViLD0EarhnB(b$6 z7MRGFvs-$M{IXeDpQZua?sd`vQE4iyz5laRf~mku2PT{bLXpbxPQvU z!c?&u3MQ-YgtN6ub#8IV!5*sh+}XLgx>$k}HJ$gP>60Jwd%d#)G~IbGi6-Lv;=RbU z!su729@9_i%6${+!`j8ZDq$CPjudJfjbyIUN~UqG{-s=d_i4E=(K)R7INFK$i1TZK zJ#>BnB~g^rGf3s?^3-x6^$c>65w7Wz$4|nONoOd%Ob6-nXjDYeC^~=&@Ss{B9bBzG zidcVGwq4y$ZT{>`DcsWN>h$BEIQ8kzo^qq`jWt&;O%`WsMd#$5G4hXf=j042@pU}x z`-uB+c$0J8ZX5>i&xcW5l)r5%U@)NTf3cnL6`oO<;%M8lT!Yd7|*bLQIqnj zlwaKK&y{grXZi1={FcRpKWj>P2fXjg33rj@KLqdDH|V4NVX3eB%X?Xz$H}U1 z-tY=p$8V8!{B^R9e~GN)$(u-gydkoVH*Ppf*7a%{UL)&zbq#Njd(dO}bvZeQ@s(3# zoll0W^BE`Wd|)Cw^j|aFCab>KLSJ9GPuB5F3fAsTf1GF ze3$TA!sW?N3crwW)8q-^hZC+rJ_p`Ao^WgAZ%O&-gj*-e{AIj0S;y;;b-X@V$J-?9 zcuBn1$ozD?6j{d`BkOn>vW_=F*6~)zI$o2kymZ6OJp6dPuB4wyj_U? zI$nyb<7LP?-UM04nKKQ_E30EQi8+aHu`y%3i{aN3ZiRf0a4+GSCg6fa{ZWzSDRqkK0Ej#$q3f zWZlmOS?qZ4(LvWFtNpadYCmnV+RsI@+Rr7j+E0(H_Od}%``9F_eaPFt=&$x6A3=rH zK9Xd$j}fxkM?_ZpNX1y}BTd%z%8=DQvShW76|&mHn&DQA#Xh=ZwU3_R4YJxt5{D6) zpV~)cI2B{Dk1Sd3W7=?qtoG3&KMX&z@92PAH{3RSA;x=Azeg@h`}Ba@Fx)r1X;?mZ z%KW7LUbG(~uYwZ~54s2(KVPL;uKTl&58BdR{ari8V$T=IYOfu#+UrHK+G~%j_Sz?_ zy>62A{*VKujIZ`9AJv7mJV{o2j>u}yDYDvgnymIbMpk>ykky{Y$!gEp7>hkmkafML z$!gDwWVPouS?#%F_+pI3o;S&A&qMh5FY{MUlGUEa$ZF5yhO;pidtM}~JvR-nk=35p z$vWQ%e|(7BM=Hi*A8E4g*BDv-U52dolO?PD(jVl4LI@P{MOPwivGa70%7fcx?9b`d0|>W(4)3EE3&APT=tzCgYg z$0iAzh*JJIIfHt_v*Zo3wvUi6<=S43U-ABN+}KeL_vcyrUnFb)9WstRK4ftwiubod z*7jYTT^>ZuyYTFmFoLsyui+xN)Y-Ya#L%YegTn;?JhyCasL zhHXh$M!enaaTQPDZw!+B1oN5gFnu2|O914D9bx!oYPc6%B4u&@gxXKvJ+z|Ptv}$T;8!HXnT2w zQkJITTa~4~yz?kax%MYz5)ZS!q@`Tm`6LKS(}!X#-*YlCmienbQeTSX?}ieDMaK-H z1Z7=M<-9N5F0UAF7;YMF8EzZy815SG8SWeQlR%#8E8mDDC`X3VhBJoc8&bS|-f+cm z!*J7Z%W&Ip$8gth&v4(cqkZdqlZGS1X~P-AS;Kk56~hg~O~Wn2ZNnYIUBf-YeZ%UK zw&qXQr5qWS=S+NmGlsK<^M)&i8-|;PTZY?)JBGW4dxraly`f`5I^U!uVjLMx8_pP( z=W4ut-f+cm!*J7Z%W&Ip$8gth&v4(ccZ#w3Ch4E0n%pXpVfF7?o-yTe_LHFHdBYXM z4Z}^tEyHcY9m8G2J;Qy&-l@m*jXyv9{A14p;k4oS^FqqAraW)BVz^#Y?XNz6wSLyr&l|27ZWwMFZW(SH?ilVG?iubI)*pkY z{z*9m#MUD+oHm>>oHd*`Tru1*+%()W+&0`X+%?=Y+&8R0(%YIpe{iK78BQC{7|t5b z8?G2`7;YMF8EzZy815SG8SWc)c+ZLNchYcVIBhs%IBPg>xMH|rxM{d$xNW#&xNEp) zxNq3uy=}+*4M&F4hBJocn{~Xuyy1%BhT*2+mf^PHj^VE1p5eY>|DVL5u-bca-%kA_ z!)e1A!&$?5!xh5~!%f32!)?PI!(GEY!+pd4$7}KV^TkouBQl&eoH3j=oHtxC+%ViU z+%nuY+%eoW+%w!a?C>`N2|C}yhL0M4*zjq?Uoc!Y{AI(>8-Bs?%Z9&a_%*|?8~(B3 zw+!#YcbFaXH+<{B-SCeMzh!t|a_9W_CHEh= z{f^t*XuY^tccax}dGzB?JvJ(^{gblGe(fmr>@Obq+s^Qt68&MO|J@|Pjh4#`GxEE$ zDt`32^|KTGRplstuT(Fbb)&VV884~J)~{89;_vYKRkY_T(T<)z_C&y!cI1Y4f_Rpk zc_s2#xmA?eO6^R@eHITV0M}}--^sKMk1vY;8>T$cGg~|>lq9Z=KmkHb^&Gp literal 0 HcmV?d00001 diff --git a/internal/ebpf/execve_bpfeb.go b/internal/ebpf/bpf/execve_bpfeb.go similarity index 61% rename from internal/ebpf/execve_bpfeb.go rename to internal/ebpf/bpf/execve_bpfeb.go index c0d9eb2ac..9ed97d93b 100644 --- a/internal/ebpf/execve_bpfeb.go +++ b/internal/ebpf/bpf/execve_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type execveScratchValue struct { +type ExecveScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type execveScratchValue struct { Aux [256]uint8 } -// loadExecve returns the embedded CollectionSpec for execve. -func loadExecve() (*ebpf.CollectionSpec, error) { +// LoadExecve returns the embedded CollectionSpec for Execve. +func LoadExecve() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ExecveBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load execve: %w", err) + return nil, fmt.Errorf("can't load Execve: %w", err) } return spec, err } -// loadExecveObjects loads execve and converts it into a struct. +// LoadExecveObjects loads Execve and converts it into a struct. // // The following types are suitable as obj argument: // -// *execveObjects -// *execvePrograms -// *execveMaps +// *ExecveObjects +// *ExecvePrograms +// *ExecveMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadExecve() +func LoadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadExecve() if err != nil { return err } @@ -55,29 +55,29 @@ func loadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// execveSpecs contains maps and programs before they are loaded into the kernel. +// ExecveSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveSpecs struct { - execveProgramSpecs - execveMapSpecs - execveVariableSpecs +type ExecveSpecs struct { + ExecveProgramSpecs + ExecveMapSpecs + ExecveVariableSpecs } -// execveProgramSpecs contains programs before they are loaded into the kernel. +// ExecveProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveProgramSpecs struct { +type ExecveProgramSpecs struct { HandleSysEnterExecve *ebpf.ProgramSpec `ebpf:"handle_sys_enter_execve"` HandleSysEnterExecveat *ebpf.ProgramSpec `ebpf:"handle_sys_enter_execveat"` HandleSysExitExecve *ebpf.ProgramSpec `ebpf:"handle_sys_exit_execve"` HandleSysExitExecveat *ebpf.ProgramSpec `ebpf:"handle_sys_exit_execveat"` } -// execveMapSpecs contains maps before they are loaded into the kernel. +// ExecveMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveMapSpecs struct { +type ExecveMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -85,32 +85,32 @@ type execveMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// execveVariableSpecs contains global variables before they are loaded into the kernel. +// ExecveVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveVariableSpecs struct { +type ExecveVariableSpecs struct { } -// execveObjects contains all objects after they have been loaded into the kernel. +// ExecveObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveObjects struct { - execvePrograms - execveMaps - execveVariables +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveObjects struct { + ExecvePrograms + ExecveMaps + ExecveVariables } -func (o *execveObjects) Close() error { +func (o *ExecveObjects) Close() error { return _ExecveClose( - &o.execvePrograms, - &o.execveMaps, + &o.ExecvePrograms, + &o.ExecveMaps, ) } -// execveMaps contains all maps after they have been loaded into the kernel. +// ExecveMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveMaps struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -118,7 +118,7 @@ type execveMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *execveMaps) Close() error { +func (m *ExecveMaps) Close() error { return _ExecveClose( m.DropCount, m.Enabled, @@ -128,23 +128,23 @@ func (m *execveMaps) Close() error { ) } -// execveVariables contains all global variables after they have been loaded into the kernel. +// ExecveVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveVariables struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveVariables struct { } -// execvePrograms contains all programs after they have been loaded into the kernel. +// ExecvePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execvePrograms struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecvePrograms struct { HandleSysEnterExecve *ebpf.Program `ebpf:"handle_sys_enter_execve"` HandleSysEnterExecveat *ebpf.Program `ebpf:"handle_sys_enter_execveat"` HandleSysExitExecve *ebpf.Program `ebpf:"handle_sys_exit_execve"` HandleSysExitExecveat *ebpf.Program `ebpf:"handle_sys_exit_execveat"` } -func (p *execvePrograms) Close() error { +func (p *ExecvePrograms) Close() error { return _ExecveClose( p.HandleSysEnterExecve, p.HandleSysEnterExecveat, diff --git a/internal/ebpf/bpf/execve_bpfeb.o b/internal/ebpf/bpf/execve_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..7b84f35fac0071792d9c67dbaaa0c20a570688ea GIT binary patch literal 21424 zcmeI2Yiy*~S;x=J_%hzzByMgUNw6i0w)f2A@p#N^9x?N;2uC6|QxJG&-BOm< zTTE=?71Jp+@gdFmW> zmO4Y7rcO~OsSRp{TB7Eu1Jr(MA2mzup=PLQYCugMC`Gx=dZ7 zE>ah$^VB)&EOmxDO`W1nQXA9?wM5NR2dMqjK5CZQL(Ndr)PS0zc2bj65p%ih=H+b_ zvrqWy?Q+F@w7E^@N+1+7SML`!hV!v{#ihq?vuhz{$focs#@c`Ob1r|eV2;Km8?^ik6&?U-lSrE+4f9)&aJbEops6L{VaaJ)X7+MrgbC2F2JK<%gYQM1$@YKEGo z2GkU_lbWQ8$a>qLu2a{jtJD?hGIfc%NL`@LQ|G9&)EVkDb&5JkZBQ%J5;ad9p!QSy zs99Ze-P%X}Es~>{H@AwuDi>pdV%}JP)xKA9>(X?x9%1 z?~6Abv-O#)A9E`EC+_DPtS8BOUYYoqTgR6RreAWhp3Wb;o|CSg+cK_wtf%Dz{Alrh z6zB)~+4dyM2RFTP{dRaieLWMe(T|F`Inth_&-b73$BqyEIq(7gw0Jw-pGdphxHdmu z?Y2+Lee6r(|3s(j&%!}BAD<6!^TUCDvh#By5W+exm>#R=O-2;uY(FACOSbmGcKuA; z?(T!Qf7ts8@&}R+>301TI-SB!UgD8%>qUBl?CcfHBsnXJ^eM8n1D+=LGku0UK%OP% z$#diqd7fM$FOVDLMe-zhi9AJKCQp-B$TQ?s@+^6cJV#z9&yzRE3y$q@NdGL7lT2SC zcaoRMDe?+AAg_|sRZ;-Q&ogbGAu|9H=>HXwR@&GwS&XWUjiJT@^9P_?f zaQEqnPCm~U;>;gseepc=(_WnR_?%yG_i>b$Y?v?cK9`^O;X*u1UKd4r4|$E8A+M6H zpA((26>=a7UM5?=z)NK77kH7J6a_DkMTF-aJHNnlneZKVfE#7DR z{q>Cau3ywV=0y<2UOet zsK1k(q>Ajlhwih_y*%%(yJyhnwPVdEg@1f|Jz4uTvFB1gs)f=Mdj|InWAKiNo z-Fpw^d{`C5d*d{Dg*-)GCQp)=$PMx$xk9${?El((=wsuB;o#{f&mDcD|BSTrC+&Fe zckH@OIltQBqn!IM3%f5UCV^ngt$x!24J1t>c}O<-*8I~rTYWx+1Dw7N`x}xj!@N>h z>gdGzQ#gI}&mi22GmG=^jkw@w$7$2)oBgdw*NZ$hnRyOK!5#8M>yhe@*#|~rZbJB8 zhQ+4`=#aEA!0Fp0-+%jXG^V{<{Pnk!)^S%b>P|p6wH3hccwxPeya2EO- z3{OJ8!tf&WEf=;e{#}IOZY&G^2E%#iJk9{|lhALuaEFBdihU;iu*mSo5&m2DpNNf) zwBb&~!CjXF0sKkbcJA=k65FrR&sm((uhN&3IHg}@o-X42F8lQ^gl%Q)k57PinlE+^ zD|>fKUL4mOM{ntBg=#xm!;?#5K5aJebuFi6eG9E;1Ha12Ji*gfZvrdzknbAp9uwD9$Xxk3)~)oJ9C3 zYh-g>$6g{Qp^`V}8Tr9Y?au(EowmQRAS5g7#YUiA&{wdaCGI#*Ns!}S)bM9)hxqtk zXh-60)F*A4#3>6hYX2VCS*HE_upM>4rmVLayWQgij-U(wS<13gHJ4&LaLfgs~Q7-L#)a_!Pp6P;aOw5`I9!c0)Ag;Yj=$lpT^r z;E;V>ucwC)k7md?C!a>ZhtDD|ixWrk1zaA%86f-;H0#b}4l40^#1EpNn1LiOLQmtw zksPxI?Y@v4S9xUqNS@cX@@(t#F0^W%eg2r_-aaP#yO}O?FuIm}+fZbG$TiT1Ebw#x z2sZjw$&Z8P?LA25y&M6~pOpZP0Ovso;0SR3yaaFrsHcW{VwQ|~k_vn6Psz>79_7)x z$>mO;J$w4a+;dO9)SEl^Vt;QgXX+D`(2Nusxp1^zEr&G|UP7p5#!nnaez}g1*2+Vp z;b0(DjNf;UMB};{Jv=r#6v)L~3@6N`!ti)#2CHM0Tybn1C2GZLpP(FzTpR3&k*J+mfpmUd`1eYSO~6YKmhcBV(gE+ir%P1B6O73`Z(;dha94g9d+a z7d_+qqgEQL){SlXW}KyByp|LkJG!MhcbO@YvYJ@k%Zn4oA`l z{lH4UcLfKf5DavbF9hkkQ0$QD$mPzDmxt@+(cDNlQVZ*8M0W+5uAo+aEgZX$J}lX! z4Ai=O47S)ix$>Z|tX3_eGMi^}k_4|m6jZ~)U~aq?R&%v_Rq8%+%1@h36HT#)x&og; ztd6o}mFn2}FxOn$V6E=zz!m1{3QE91I1hiY1_DfY)-e=f#*A01m}9w0c`#QWDi5Zm z7zfSw;CN*abG*3+(Rrw-D}b+E!6W^T=T1NKB8u)fg&XC%L6uF@3vqq|ZJS+@H1A5& z{6Tu!P8d|WZL)NX`7YWv_*`djT^3TLp(t|jU~qVB)Q_H|W1iY&neKhzoZEPM2YMfU zq4&_C;IirPj>&ur*`L+&=+OD`3m6rQ@1-z((9O`zaXlPjFf)E!?h0*1GI!mONL6kVimWR(Hb_4#)QG3R_nR*V`Ft0PJ3T5 z_QsSsdA}RLrVQ{@*7l>%p6$(@?LGZiT0B9!nliz`%*hj`!+Eevk%*6e+PeIQQ1}?u zlMIF%jb@83S63iywwCV2DnXO3XGhY#6&uEiwcUW>Gq&#}5K8DGLbs$h*(6p zYv$zflNsk6Qn#6uI=g}pN!_Tx^@Gok3U2G| zD+c!MQb8eir*bnHx7iGme5~EUHt%FU_Sk0Lawy*Qcao+nHzn<^0q(VukG72sFd}#B+&En%>i|a9n1c^0~mJ9%dlg=J$Qy4lXZ4l z?ltj7I~e^Wezg=#{B_BnXMJ^Jh9!R~l8#q4=|^kNr_Yjq)0nz6dY<`z&%|e>{3`kH zP5dq4HS)VA{vcSUkG20VCf8jw1P6KW*aQkba@P z)=L<&TfqxV7sk9wETYWUkssqcEB(Gi{$qTC>jbZm-!^6j_7n8Cb48d5lXE8ieW@=)u3}0Fvwdw}H1T)g ze@m9>!jj(S*tfrBfazZ~@ip{EONsnlOfk%dmRZN`6_dCX@8~V;uT5Tvq@({@*2sTk z5-GI5Wuuu}+5Yx_Fo`=bKCNs|`+Fu4;QhUo{%0dHs5}!bOS|?ron>*Qljy?uwJtH;^KyhSey#L3xnL3*%dFK0|)fBz{fOXCo}>bL2lXiD}{a2#fy<~|2x#9{Mnzzz2@Oa{z@eOS0eF@w!iz_8j0_WdOm}&%sJ05GwitnmQM9Nsd!rPtm1jai;9;OuPR<|W;?zS ze`1{~Jy4ucoK@VfIIp;(cvA5UIMSc7ImHW#mlVrB7cDRIGs+vyEYHo+^ms~fT5*r! zKE(ryONtwcrxed9o>RP_cuDb!;x)w^&74RoPAN_+?or&QctCMUaYONx;u*zriWd|w zDPB>$rg)>7<(ouw{996r(~5f(_bDDwTvFUnJf(O>@tooX#Y>7;6t5}XXlDBy5m_It zDV3g9+@rWp@qprz;)dcW#WRZM6fY=VQoN#gP4PxEwMe!6^?tQ%fwa+M?Q@o&f zN%4x}HN_jvoJ=ZCDNZZyQQW6^KygWNL-Ca28O3vo7ZfikUQxWJc%zv+l8RG`(~5f( z_bDDwTvFUnJf(O>@tooX#Y>7;6t5}XXy$!M#VN&U#XXAq6b~paDQ+m9Qaq!0PVs`` zCB-X>*A#Cw^Zumbl;X7F9>sl%2NahSHxy4Po>4rfctP=!;uXbfiZ`11KvHo^aawVY z;&b50{qn$|;=1BD6n|Oq*A)LHSoTIaaU6IXmneT<@sAY$TQlEq!1GNv-~Q3mt+#!o z^A^)x4;yvUT@8o3A367Ux4_na%ryNt+w=pd6u8d6AmInp=r61Ct1SO<2`M|4ZO+1f zO>{r6M*scH{|}()9v;3lBLAvW#s4fe8Qb!6XG@XvU3}cRT*Sl8Uwr*PA$H@xQR;>B zrn@#VVwL@A{13(G`Tv$9_5`X?-!Xi}Pk-KpVkI9#wJ&y&uxEMKjUL%3M8ceZ5)+gE z@&ADGi9GT|4_RkC?EiWD?-*Gh>-6CPasb8Wj?H%Z^74H01Dw0qPs}0>hkO@lI(&JF z{70O-*>A8^9xC?zcOG9}>`R_q?BBSAG#rUMF44o6mpIuIcC)|2LIG6l+XpnLFE92V z#JP+8o6|_caozU!Aj59ts&HYniW50llZ&y}gwvOxo!+EH*-?zit zm;R4@{{l4~nPrDJ+|d->WZ#bIZuS>kxdV$(v5(&o?Gd&At+8uoY`;x1aZ8?VFf8A^ bqDQ2^V$UK$?pZq=53&F3{vl=b{7?M{X?ge& literal 0 HcmV?d00001 diff --git a/internal/ebpf/execve_bpfel.go b/internal/ebpf/bpf/execve_bpfel.go similarity index 62% rename from internal/ebpf/execve_bpfel.go rename to internal/ebpf/bpf/execve_bpfel.go index 5f4f6e613..1b73d6db5 100644 --- a/internal/ebpf/execve_bpfel.go +++ b/internal/ebpf/bpf/execve_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type execveScratchValue struct { +type ExecveScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type execveScratchValue struct { Aux [256]uint8 } -// loadExecve returns the embedded CollectionSpec for execve. -func loadExecve() (*ebpf.CollectionSpec, error) { +// LoadExecve returns the embedded CollectionSpec for Execve. +func LoadExecve() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ExecveBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load execve: %w", err) + return nil, fmt.Errorf("can't load Execve: %w", err) } return spec, err } -// loadExecveObjects loads execve and converts it into a struct. +// LoadExecveObjects loads Execve and converts it into a struct. // // The following types are suitable as obj argument: // -// *execveObjects -// *execvePrograms -// *execveMaps +// *ExecveObjects +// *ExecvePrograms +// *ExecveMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadExecve() +func LoadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadExecve() if err != nil { return err } @@ -55,29 +55,29 @@ func loadExecveObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// execveSpecs contains maps and programs before they are loaded into the kernel. +// ExecveSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveSpecs struct { - execveProgramSpecs - execveMapSpecs - execveVariableSpecs +type ExecveSpecs struct { + ExecveProgramSpecs + ExecveMapSpecs + ExecveVariableSpecs } -// execveProgramSpecs contains programs before they are loaded into the kernel. +// ExecveProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveProgramSpecs struct { +type ExecveProgramSpecs struct { HandleSysEnterExecve *ebpf.ProgramSpec `ebpf:"handle_sys_enter_execve"` HandleSysEnterExecveat *ebpf.ProgramSpec `ebpf:"handle_sys_enter_execveat"` HandleSysExitExecve *ebpf.ProgramSpec `ebpf:"handle_sys_exit_execve"` HandleSysExitExecveat *ebpf.ProgramSpec `ebpf:"handle_sys_exit_execveat"` } -// execveMapSpecs contains maps before they are loaded into the kernel. +// ExecveMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveMapSpecs struct { +type ExecveMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -85,32 +85,32 @@ type execveMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// execveVariableSpecs contains global variables before they are loaded into the kernel. +// ExecveVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type execveVariableSpecs struct { +type ExecveVariableSpecs struct { } -// execveObjects contains all objects after they have been loaded into the kernel. +// ExecveObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveObjects struct { - execvePrograms - execveMaps - execveVariables +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveObjects struct { + ExecvePrograms + ExecveMaps + ExecveVariables } -func (o *execveObjects) Close() error { +func (o *ExecveObjects) Close() error { return _ExecveClose( - &o.execvePrograms, - &o.execveMaps, + &o.ExecvePrograms, + &o.ExecveMaps, ) } -// execveMaps contains all maps after they have been loaded into the kernel. +// ExecveMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveMaps struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -118,7 +118,7 @@ type execveMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *execveMaps) Close() error { +func (m *ExecveMaps) Close() error { return _ExecveClose( m.DropCount, m.Enabled, @@ -128,23 +128,23 @@ func (m *execveMaps) Close() error { ) } -// execveVariables contains all global variables after they have been loaded into the kernel. +// ExecveVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execveVariables struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecveVariables struct { } -// execvePrograms contains all programs after they have been loaded into the kernel. +// ExecvePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. -type execvePrograms struct { +// It can be passed to LoadExecveObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExecvePrograms struct { HandleSysEnterExecve *ebpf.Program `ebpf:"handle_sys_enter_execve"` HandleSysEnterExecveat *ebpf.Program `ebpf:"handle_sys_enter_execveat"` HandleSysExitExecve *ebpf.Program `ebpf:"handle_sys_exit_execve"` HandleSysExitExecveat *ebpf.Program `ebpf:"handle_sys_exit_execveat"` } -func (p *execvePrograms) Close() error { +func (p *ExecvePrograms) Close() error { return _ExecveClose( p.HandleSysEnterExecve, p.HandleSysEnterExecveat, diff --git a/internal/ebpf/bpf/execve_bpfel.o b/internal/ebpf/bpf/execve_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..265b9cc7e0ed8d62fa0618928c7017cd4d74a1d3 GIT binary patch literal 21232 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 b7k8|$qEH`E@i6gp{p0U@#zp<}Oh@@I(o?M< literal 0 HcmV?d00001 diff --git a/internal/ebpf/file_bpfeb.go b/internal/ebpf/bpf/file_bpfeb.go similarity index 74% rename from internal/ebpf/file_bpfeb.go rename to internal/ebpf/bpf/file_bpfeb.go index edf459214..aa41f2094 100644 --- a/internal/ebpf/file_bpfeb.go +++ b/internal/ebpf/bpf/file_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type fileScratchValue struct { +type FileScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type fileScratchValue struct { Aux [256]uint8 } -// loadFile returns the embedded CollectionSpec for file. -func loadFile() (*ebpf.CollectionSpec, error) { +// LoadFile returns the embedded CollectionSpec for File. +func LoadFile() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_FileBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load file: %w", err) + return nil, fmt.Errorf("can't load File: %w", err) } return spec, err } -// loadFileObjects loads file and converts it into a struct. +// LoadFileObjects loads File and converts it into a struct. // // The following types are suitable as obj argument: // -// *fileObjects -// *filePrograms -// *fileMaps +// *FileObjects +// *FilePrograms +// *FileMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadFile() +func LoadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadFile() if err != nil { return err } @@ -55,19 +55,19 @@ func loadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// fileSpecs contains maps and programs before they are loaded into the kernel. +// FileSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileSpecs struct { - fileProgramSpecs - fileMapSpecs - fileVariableSpecs +type FileSpecs struct { + FileProgramSpecs + FileMapSpecs + FileVariableSpecs } -// fileProgramSpecs contains programs before they are loaded into the kernel. +// FileProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileProgramSpecs struct { +type FileProgramSpecs struct { HandleSysEnterOpen *ebpf.ProgramSpec `ebpf:"handle_sys_enter_open"` HandleSysEnterOpenat *ebpf.ProgramSpec `ebpf:"handle_sys_enter_openat"` HandleSysEnterOpenat2 *ebpf.ProgramSpec `ebpf:"handle_sys_enter_openat2"` @@ -86,10 +86,10 @@ type fileProgramSpecs struct { HandleSysExitUnlinkat *ebpf.ProgramSpec `ebpf:"handle_sys_exit_unlinkat"` } -// fileMapSpecs contains maps before they are loaded into the kernel. +// FileMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileMapSpecs struct { +type FileMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -97,32 +97,32 @@ type fileMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// fileVariableSpecs contains global variables before they are loaded into the kernel. +// FileVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileVariableSpecs struct { +type FileVariableSpecs struct { } -// fileObjects contains all objects after they have been loaded into the kernel. +// FileObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileObjects struct { - filePrograms - fileMaps - fileVariables +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileObjects struct { + FilePrograms + FileMaps + FileVariables } -func (o *fileObjects) Close() error { +func (o *FileObjects) Close() error { return _FileClose( - &o.filePrograms, - &o.fileMaps, + &o.FilePrograms, + &o.FileMaps, ) } -// fileMaps contains all maps after they have been loaded into the kernel. +// FileMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileMaps struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -130,7 +130,7 @@ type fileMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *fileMaps) Close() error { +func (m *FileMaps) Close() error { return _FileClose( m.DropCount, m.Enabled, @@ -140,16 +140,16 @@ func (m *fileMaps) Close() error { ) } -// fileVariables contains all global variables after they have been loaded into the kernel. +// FileVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileVariables struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileVariables struct { } -// filePrograms contains all programs after they have been loaded into the kernel. +// FilePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type filePrograms struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FilePrograms struct { HandleSysEnterOpen *ebpf.Program `ebpf:"handle_sys_enter_open"` HandleSysEnterOpenat *ebpf.Program `ebpf:"handle_sys_enter_openat"` HandleSysEnterOpenat2 *ebpf.Program `ebpf:"handle_sys_enter_openat2"` @@ -168,7 +168,7 @@ type filePrograms struct { HandleSysExitUnlinkat *ebpf.Program `ebpf:"handle_sys_exit_unlinkat"` } -func (p *filePrograms) Close() error { +func (p *FilePrograms) Close() error { return _FileClose( p.HandleSysEnterOpen, p.HandleSysEnterOpenat, diff --git a/internal/ebpf/bpf/file_bpfeb.o b/internal/ebpf/bpf/file_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..6cba12704f041b853fc6a662db0fbeee251993e1 GIT binary patch literal 72800 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 SgY!RXxN~d2Gz^db>HiHkxuCKD literal 0 HcmV?d00001 diff --git a/internal/ebpf/file_bpfel.go b/internal/ebpf/bpf/file_bpfel.go similarity index 74% rename from internal/ebpf/file_bpfel.go rename to internal/ebpf/bpf/file_bpfel.go index 1b89ee110..1d702b970 100644 --- a/internal/ebpf/file_bpfel.go +++ b/internal/ebpf/bpf/file_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type fileScratchValue struct { +type FileScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type fileScratchValue struct { Aux [256]uint8 } -// loadFile returns the embedded CollectionSpec for file. -func loadFile() (*ebpf.CollectionSpec, error) { +// LoadFile returns the embedded CollectionSpec for File. +func LoadFile() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_FileBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load file: %w", err) + return nil, fmt.Errorf("can't load File: %w", err) } return spec, err } -// loadFileObjects loads file and converts it into a struct. +// LoadFileObjects loads File and converts it into a struct. // // The following types are suitable as obj argument: // -// *fileObjects -// *filePrograms -// *fileMaps +// *FileObjects +// *FilePrograms +// *FileMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadFile() +func LoadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadFile() if err != nil { return err } @@ -55,19 +55,19 @@ func loadFileObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// fileSpecs contains maps and programs before they are loaded into the kernel. +// FileSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileSpecs struct { - fileProgramSpecs - fileMapSpecs - fileVariableSpecs +type FileSpecs struct { + FileProgramSpecs + FileMapSpecs + FileVariableSpecs } -// fileProgramSpecs contains programs before they are loaded into the kernel. +// FileProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileProgramSpecs struct { +type FileProgramSpecs struct { HandleSysEnterOpen *ebpf.ProgramSpec `ebpf:"handle_sys_enter_open"` HandleSysEnterOpenat *ebpf.ProgramSpec `ebpf:"handle_sys_enter_openat"` HandleSysEnterOpenat2 *ebpf.ProgramSpec `ebpf:"handle_sys_enter_openat2"` @@ -86,10 +86,10 @@ type fileProgramSpecs struct { HandleSysExitUnlinkat *ebpf.ProgramSpec `ebpf:"handle_sys_exit_unlinkat"` } -// fileMapSpecs contains maps before they are loaded into the kernel. +// FileMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileMapSpecs struct { +type FileMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -97,32 +97,32 @@ type fileMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// fileVariableSpecs contains global variables before they are loaded into the kernel. +// FileVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type fileVariableSpecs struct { +type FileVariableSpecs struct { } -// fileObjects contains all objects after they have been loaded into the kernel. +// FileObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileObjects struct { - filePrograms - fileMaps - fileVariables +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileObjects struct { + FilePrograms + FileMaps + FileVariables } -func (o *fileObjects) Close() error { +func (o *FileObjects) Close() error { return _FileClose( - &o.filePrograms, - &o.fileMaps, + &o.FilePrograms, + &o.FileMaps, ) } -// fileMaps contains all maps after they have been loaded into the kernel. +// FileMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileMaps struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -130,7 +130,7 @@ type fileMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *fileMaps) Close() error { +func (m *FileMaps) Close() error { return _FileClose( m.DropCount, m.Enabled, @@ -140,16 +140,16 @@ func (m *fileMaps) Close() error { ) } -// fileVariables contains all global variables after they have been loaded into the kernel. +// FileVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type fileVariables struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FileVariables struct { } -// filePrograms contains all programs after they have been loaded into the kernel. +// FilePrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadFileObjects or ebpf.CollectionSpec.LoadAndAssign. -type filePrograms struct { +// It can be passed to LoadFileObjects or ebpf.CollectionSpec.LoadAndAssign. +type FilePrograms struct { HandleSysEnterOpen *ebpf.Program `ebpf:"handle_sys_enter_open"` HandleSysEnterOpenat *ebpf.Program `ebpf:"handle_sys_enter_openat"` HandleSysEnterOpenat2 *ebpf.Program `ebpf:"handle_sys_enter_openat2"` @@ -168,7 +168,7 @@ type filePrograms struct { HandleSysExitUnlinkat *ebpf.Program `ebpf:"handle_sys_exit_unlinkat"` } -func (p *filePrograms) Close() error { +func (p *FilePrograms) Close() error { return _FileClose( p.HandleSysEnterOpen, p.HandleSysEnterOpenat, diff --git a/internal/ebpf/bpf/file_bpfel.o b/internal/ebpf/bpf/file_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..86647ff9b619cec423ff886acb6ecca40b47e3a1 GIT binary patch literal 72032 zcmeI54U8M-ncru3Wr$0Sac>s?w@ zyxL`US2Ag)34u%Zh#+^_7Ve4-T$E0VJ2rI-whdxlk*kR!IS^MD-MdQ^j zl+5$Wt3EUeorFf99<*-~D6eiod(cg27rFuMK-(Cl>4O)d(phai_nulhg z8E6`sf+nE}XdD`Y`p_tJ5*mSe&_3F23)+KjLc7onXb0McwxCUD16qgHpli@7v;r+c z3(!0?3(Y{&&=fQYO+e$&7}SSGp_5kEt$XQ3JO0X35#z4o`~?}$O-T@NoWM> zLHp7havrR2L3_|mXcxKx?Lgbm7PJX%K_0h)(qp&4iznt~>w31}P| zgZj`YbP^hY8ZqPhDmg6gMn0>)@t8e#lhJ|w#k}Os=U4U^ZxjDIIV_*E={_s&zVPfh zJ5kK;zQF{1Rz8jUZd;z&9?*2O zB%03WWG}sF&(rc$+62^eH2v3|&Npm22PSMiUAtVY9NGe|95X1#?3Cs%^_6n?qSxK1 zv~xXNIbAxXKSVk9>^Jc=9W9Xy_xj6Y`$yB+C+S?QJX#-@k1NlxUg+1an_`*kvz_K) z$x7zK-!}nE3bK`_w0EVy#%%kRrxIY>UgfDI*ydB7N?D$X8GT~ROm`CBH(Z{w?lWUn zXQ#5py)Tmxsob#NBk0O!F?Z~@!`7r||C1>6Bw z!5iQ;a2H$yZ-VRK9=HMC0yn{Za0_hb!_rtAZ0E_+m@P+n%FdsqFgW40XS zDc|&DX>1em?L1r>v*nQfg}*I_^e@#(X`M24fzd%78JyPi4Wj9ObDz z*p{O_Rd8$uim*``FJNnTOJlH?Q(5@KZcbS{EaMa5)9{BKol1fGCLgH}cnfUpw6q5} z4*yMX4BQ3Va!GrGZMmdBz_wh{Utn9V(pU>@%T*d{f^E4g>cDU%$?qblmms zfw9jTE`J%rf6gmlw zKs_ktu~p1(tC;szH*J5dVxC;Z{JDyGb+rxu7PJX%K_0h)(qp&4iz znt~>w31}P|gZj`Ybkb<)MU1~G>(A@i^12BYu48R8nE68o%J9CFneM}N?7Fp+<#lTx z%j?!Ime;L4EQjk@JHM=B{#nQTvyS;^9rMq6-;A_y9qZ;f-?T@#j-~Z*xQ;dVAH#Jl zt^=lO<~%8l;k=ougR@4iCD12@21 z;3l{aZh`H57_MXOda)d?V~za`*RkgG*l`{E3hwW^=b_~<k8QG@pbF7`Zm`25EVCwXr3X;bd&GuGbQlb@%1Jhm3V; z_#Uzy534>j3Y~;TpdJ+0hrc4vZ_8MZ>V22sd&lzLx*3mupWi>eyz@7FZmR>N96qo8e@h zE9m>(;rqw9pA$Z}HS=!x{&C;hpYZ)-jE4f+qXo``o8TzGti>MBcNu_9$Gh+WBSOz9%8?nS(L! zgzHt)9(sRJXJGff?8W}SR9E)8o;Uw@8@^{8zGp0BA$*RyA*~?uZutMQ#tzH>ds}-P zK1Vfn_*d`$WvzX6-w&hqMc*KPgal=c)L9m)H9}E$;g!p3oO!WV_0< z&u7c$@t*H_-;Uq&c+dAd-t#?=_k7P|e4p=|1j^^Ppgrg&vpmk^s zx(2oPAIj(LeTVY-BHRnmJTwcWYRCbSF1 z{CK_tZbMtpCbR*qLu=4AXcbz47NG@b9-4(_plN6dnuI2xacB(cL!;11ql4$DH%6>G z-oq`Q_YEJ2;QO5H@HFpRY0Bok18K2W^h<_h)9a^;zUN!A<#_CECb&0y-tvLncz-yU zzN9-yf7XU~=|ADg+YjPD^En&;5joa@J$s{N4fnd<8@8w6oAUiomp31n(=+_P+VJ_T zjOcK^E9-r223hxG9{XEZ@0#;9d_EgKpOtau?i0BC0O9jlTxW#OXU%*ZKA-JdyA(d3 z#dyH_Yy?fTAJ6!+T3-R*T@clf`+2>{9dbnuM zyYm=t=fm}|4xIA&tQkM$^RQFr)8G^|2~9w89f@_PTi=$?+i_h!KWV}Zz8}i1hwW_? z$#edTaHEY~^V z^WX6KuUPu<`R|6g-U*-o+V`=-=f4%K|2tU!VqNkp^MAB<{ZN|1x_G}`50nqu>-E9< zIPm?+m$yDXXU@Oj`gp~jkI&ifp(=mYu9IKZOk|t=?Cbnqs695`@Og3GIFwJ}dGRSc zFFu9m#i#JR_!O=yPvLp-Dcl!2wPnZ0sUCC_+J$aF?f5C5YJ*$QCbR*qLu=4AXcda_ zc&Z34K=aTnGy_dTQ_v(d0gXdrP#+qFPC_G4586k&Z9#j`O=uU2`Ser=+=jNGO=tsJ zht{BL&?>Y7EkX;>JTwcW+G=e?+QJ1c4prH=!Z_;^+@`J4f%KL^Pm4@ z%(E*R&wDju_lMs)DC4+(x0dN>5w#Eg0QJRF`>v_Fzg_mL)L|ITk_5q$TzOj@4XciF z#lA~dQ~D|_^77sx$C_SJ_Jgv^cC9YaoxdE8+c$C5YkRtO1z_CA^|$b_ZOc2Dj=mpz zw+$50-#~mXj{TkUTvg>~IL^v( zQ;vPvD{}lt?pQMXV>y;BqJ7=gBRPJje0^<3KyH?MmVBU8MZ^VIlVhHF6ztvpd8;Nnw0%vIo5NiBKt?=ST^%ZjvD`y zVC~DKxKD3qaW$K%e_Rfwo?0feNziLFzcX@hNL26t$=|*s)>}Wv^?dz|MACX_884?E z&q_L4r;6;l1@pg0xGesf|NG>4Q6?nmhg~Ukmt!rbZePT)FUMcPaZ-+dUygr6v?BZ0 zaNL&TKa}HpMK$4nE5{#{!=xPlksRxJR*~b593PY8wj5&{Pq-t=8uOI8?ETGv`{+;#ho96uoH%ie~2QjWg|_pBWMsT@nf zyELsoljHkEb^C8}EL%k9g&$Cu2aT8K{U{Jdog|%Yef|TP=*4Z{LkJ)A*FGuA$*2Ag zkMP$q^RM8a8sV?;|L;B<|HC8vHGW(sW=;RZ2!DYo|mukn8Y|4)wa*Z4} zpTqw%@E6%OwxoHyxV@&hHY>-HmX{E|N|vK?I50;#SKzj$=gaXevg_u{e!CvX=F9#b zJ&?_p{g|XPhID4sQ8vv_&m-CF=jnwNZ+iOv#~;7{6Vo66&?k>ipZrAn`1G{5QYz%U zGc(2M+``Jz>D;oHJ10lW-r1u^B)oo}U06PSY9Tl0YZ7PQcaJ*D=fHV>ap9D&AKo*$ zl6P)q{%p>hTUsnk&n}*o7|XLuGb^+CY3nhwbSm!2$KCpIL_dytPtVVsTJ~0!&MwT( ztmNjr!pxla^y&HB!pxbRH*>b=olR(-iD8zr`I#k`u+!;$Zl>T#q^IU3jg_UD+1#|L z%k4zVB@V6iG58idikIgPF zEU)<5O#Z<;q&RmT)1rSW{^>*hknY|_M?QVW2Rtr>t^QqhOdQU8S1&I3_xVz)=`%Bh z>G{RQXU-O;bMv_~vD?w|hy2^MX(cUJYKe0D?f${V1#vq4v>&@!M#3F9)Syxk(`T{c zzje}%%E!{jAHDzN9TG^!pZ{ELX;CtbOLU33Q}%9{=_rsgXe2Ge^z>6_PtUKMUYI_U zJF}cyiAfTN{P-b%`Sf$S#iwHjwJ;h`^v+{uAV>~Ioujne-Qsp;aV{5dii=ZB&VxJV zPA@$@CmyD1%S*FTYLnJrJo}%&&tJ;T%uSzN&Mi$ZuPkX9BrlBcK~c83-f_q;%&g?~ z6wuPSRxd0qK9!r^p4!~jaGTuh^3l)2tLTbPs65xtA%m6nx+4*62nL;eHlho|p<^b-1~+dTUS?R{;g`LuT^2f| za%h#M(+j7bI{UP=t@P5loQ!8P4-R_gU{1OuK1exd64K#m8&;Dt^Bt1A;Pe>Ih_(#} zDVbQ(Nz*b{EX+so97|OYA1371gaqiAzE2q!omRDxZ z6s8xJQJQDeZCX2iVcB%G1d~>iUX%cGpzUzyG0aTUr{~0V2-Z_uPn=c6K}VDcrh{e2 z0i~hNo}QEOg>nQ#ipR7Yd8X7F$n@fAJ)P9aMwHmcj`>HASVtML5)QuBNm6oAZEn`t z#zy`w1um~naMIUz9@B$CXM;_PuFNbyqshyOdv z(d!J)9z7$j;$T1H_a3=7ZVM;A7i6hv9`bYIbyyOx?cl;o0y~8lFNFUkOwji8TeC6! zBxXcyhOjZlX6`XZYFwP_-FE0o*dqZ~41IAu8gM--VU5v|jxYvG^3hIlM$Dw?ESb0u z4HEJjI7mXjb5h@uQj$^#SAWzpLq1dhaUZi zTqFm_i&kN$k_P--K`(lZWiz`+Sy{*f*!HIIgx=p88Bv8`-H&)DKJ?)6M?ZetJ1h&iWpDoUY;Iv$ zpDpOKLSOHy$+k;wy6OJ2Bl2F&QO|ow?)d3#+}{;9`7@h1duwt-*zx;?|Btp^$d#lF(Bl4LF@JEIJcYq%gUa`#wMJ>HS*`zbd?29ui~&{@00r9{&GG z{p0pIgQoXw#$<6hMsQRarj;A69;0+&te?|0k3`C_j{c$e>{+{~(aNLt7H2z)XO{pLF ze+lpZ@wn#)_-f%8*wrrq-Xl*3#$`~az`r5<&dCX{0{%xF6uX;y)?vtmREf_{fP}UJSeb%7m8>@Lu5p_%FqO@0!dD z0p2ZK0spo5zxDYEuNvTe!fW8y#DA(L?HS2T?cQj90Bq)b|8*Q};=+fuF1o=ON`2!a5H*|6{^B4>`U?I4P|8J|g>0 z^N@yj^LrlQb)Itbkor6Ou?Bx38Ap>_=bnQGXfI#(qRZm7V>N zQ^#;hRPBd`)A~635rhA{x~Iin!r$4C4EU#_YCrO#n!bit`%xs8p=i=K^SaoJYJk;# zNLLzvXFocKul+Gzx7RKysiSV1kFg)EVZRysAv`JmS`U+tOm5n5jzjwq+KhD;lNE7~~_)q-M z^RnQt34dx+uD=7E7A^$%m~b(`w+PpTb)I`fcC|-RRKxDNxGk*tJ9{KW9{8(0k|G;_ zXOFhv@9dHO=b@(W?2)^!b@oXAgE5%CzPqO3ojp=}q5f)TbUl*=JA35pM@rn)9#up& zzOzSaFEqZhM>Y66d(;Fwd(;kuS9`QU+(me2k2V9W_NWhb_Q;p(O3h#UXMEGHl~dA2 zx~aRdM}4wK!js~!^$6`zxSrAVO}L)1=R>%jk$L2W%UsXM{G#{h+`HI159NfD^6%zq ze{|k?M0T|YNwBjAI(KP!Gk^PI+wOmR@LN8p6T! zoA7t`KyD=%e>2~UG1+#%>(H3F-xZwy-Fn8%|6*(+n4jJJ9|ODjKOwC7YxwIWyyg?+ zG{U?2KNDb`{|jI@|JM*-+jm^rSMP-e=l^TvUg!gPDHrOkd{j7`|Lr&o?`PTjTjBg4 z&i^{EUGDuXonOXfe$i(z`u{h&>HPM4!Y3-jc}V$~u+Bry{}$ndaL_)a!OlLo`QO=x zY`|abLta?ZbM~PEe`gwjf>J&imJFjCs0V(DFO`;9-8gRl>jf`!eqetG}}kaj>%wYA-ZB z4S&6aPZPWKf=l1oj};03wyxBl(qBXTe=Yv|e>mp3^@QU(`8N>X*`H>B)&6wA&i-s6 zzV_$1^ygnmK0*8Qn(zZR$n#yav+_}45z`JPpYVA}_`Ds@&($7<&)dW2?QisXyUs7; zGQa3MUN_4eqnpmBUl2ZXXgCike@s~CA?JTgI2zzvgp{AE+&OU7*zDvIge`lZE{V8XkBAAbzeVPROqH3R_qCxwl?#|w* zeTu{1*{3wv*(YajoP8<;;;X%?AiT3rx?a)roqbaK6SRL#_&a;lB5o5q`{V4>2GVou zqaN7VCw-5|_3ya!r@rf#k~Y*$-Hm;EXgDs6eG=Ajq2&ziQ~3NOe0~zX5B6rg4`%F> z%rE+m@hxT+vh&b_aQVsMJfwU^Smz;~r<6Y??Cg{BG2vLi{}$mi=B-C$?$YNkd9brr z1%!9@q!{p5dsTtIvsZQaJA2gvJA38qk+WBu;;-d(>Gu%c*(+zC)b2QYq~V?YiebKY z_A8G0+}V=^{MG)by-LB~*{eL**{fn8yxONKv9m`m{W|=ey;A!Wv{xPYJA0+}N6YWH zOT3Br&R+Ebtm`RR`k3^cz0&tsU4M^Df9kvE7uc(n;W#n&N?6B9Xs^Qem&5yc@;!BCk`15{auQ0#pJMz-3p1kgCp5y$vtkrd^gC`@Fd*F|PWAbi!LcE>> z7lifut9sxTI4bXA>!$xNbS3i9|2w)8`RFtIE0K>r`?(VN=smtGk&mv`u0%d+W3NO$ zc65*aobcpYV8k}z$;mNdo50szvDd`lnJKK zPq)|P8v1(gHggY0+1C%*z9Qk(J#BH|{yBt?llwn4=@0vHOa3=Rw=W_cOZJ^jJ-$J9 zO<%9+bo0%p=jnI9?GN<3UTf;6HQgWRcbC3i)9w%SdtBya-D1XFCM9exd_u~<-+o=2 z@o6A^{gTK1fqr-4|5QTl5A=H*;lFC!hyCut|A|S*y)`C*P@bevfe<_PY!J-%Y)S{hmO0F@I9dn@yec!-e<7{d(`#fxBxFwN<)FHWJS>|5NE$ zNBNq>bF6)pG&Brf4Y2w*18lzgP7{_*MO#C!RdiD};Zc9bN%fRXSs)L;ASr2uPr^?O})Q-7_` zMu2Y@J|w$t>aTT@e=|3mvP{M9d#;VYcEyv%*M`?H^8r??_W1zoRQ8ns>k{FG0BccR z3b0=Ce<#2?^}QNk{Wq5%26&$w|1`ilXa6F=@*0%4Pb(#xmQ}A}ZVIs4RCz7eY_9%E zVtLJWn}3$LKwKeSBd!xSiQB{*#GAxh#HQ1v#I8P*+KB=7iQ~jc;xuuVxIkPXUL&p( zH;LQC-2m&MzN4+1)=v-hnU`*kBbYB7M~P#^3E~uShB!}LB(4(Ih#SN$;tp|_xJTS4 zj%dXL?GYu`dx}AScU|P#D@Fdgz7K}a6BmiA#5Ljuaf`S^+$HW2_lYC8v{q*w8c|}s z|Dc=mPY|bwGsJn~B5{?tM%*B75qF5Y#699ZaRk?ou6|MC7;%C)MVukd6BmiA#5Lju zaf`S^+$HW2_lYC84>hPiaf~=YoFdK!SWmSAafNt|xK7+8ZWC`1ZxU}2o0q9Dp0#}L zzMIxx*$>!z`ef z>*oA3#ChT(ah146+#qfdcZj>hJ>oub1nWar{wQ&bI6<5u&JgE`i^Nsp8gYZTMcg6o z68DJv#1XwH4D?@=I7XZxP7!B_^Thhw1Ht^N#5Ljuaf`S^+$HW2_lYBV5iHxF|A}M7 z3E~uShB!}LB(4(Ih#SN$;tp|_xJTS4j^IYkp#H=$;smk&?_#k1GQ@e}B5{?t9$+=i zP2x832Jt5G7P0xk9Z6T~tLabbB1bmIK5?8lNt`Cm5*LUo#B0QL;wEvMc!PM8c#GKG zl63W*#I0$^K5?8lNt`Cm5*LUo#B0Qj0PCemi?~DFCGHXTi6gpbl}+ob=|_oU#0laQ zafUcgTqLd%*N7X$E#eMwm$*mVCyvOwnz{|@PaGpo5T}SU#ChT(ah146+#qfdcZj>h zJ>oubL~r5*>rWgbP7tSvGsJn~B5{?tM%*B75qF5Y#699ZvH9_}VExTax#4(-5$o^H z=;p>tia0}@CoU3KiEG3S;udj-xJ%q4?h~6IoD0+^syF=t91pNA6_Uhh;w*82xI(-} zTqkZ4w~051H;K21-6KQoKdsLs9wj;UiQ~jc;xuuVxIkPXUL$S2p$m*>Q5XaP7tSvGsJn~ zB5{?tM%*B75qF5Y#699ZaU?38F595~#4+Loaf&!YoF^_4SBY!H4dNDYhqz1JBkmJN z@F;jtf8rQ%f;dH-AgNL(eZ5jTii#2w-; zagVr99JzH^UoC%>I7XZxP7!B_^Tb8sDshdtLEIwl5O;}t#C_t(ZB&2a7;%C)MVukd z6BmiA#5Ljuaf`S^+$HW2_lYC#qWTlZh!eyq;tX+~xJXQ5XaP7tSvGsJn~B5{?tM%*B75pM)oA60A;ZxNdxua|JUWY_SM@0JhQ9Q(v^;v{jJ zI7?h0t`M&g*NL0NZQ>2$P2w$L^G}+A`cB47^@sH*juR(|)5KZg0&#_Sjkr$SByJOL z5cdMCk8b+JkvoR%%2-Xz{4_6`s0tL2#__KD-fN#ZndmbgG%AzmY{6E}(5#2dt$ z#9PGPT~vQ!pEypOBu*1&i3`LP;#z?9(Q<>hMcg6o68DJv#F6;0{+eHuI7XZxP7!B_ z^Tb8sDshdtLEIwl5O;}t#C_t(-Bf?#7;%C)MVukd6BmiA#5Ljuaf`S^+$HW2_lYA% zsQ$z;;skMuI76H#E)rLXYs3xW7IBBTOWY&w6Gx6x{fT453E~uShB!}LB(4(Ih#SN$ z;tp|_xJTS4j@+}o{tD1wjei62 zp#bj_{|^$MAbyf~p7`^`&jQA=IPx@-`3x2ga;D5o7`d%!a`Bh&82u9TO2EVMmV~&Fm!Kfz5 zfzQae+k*rn2Y;e>=bF0T_}%GOy?1IQlkXsM?p$tRWf{N!yF9xzvof2X&gW(d+mdxH zyK`x@`L;zFH0tO$LvOCRZMD&{hCOm&UKfiOXloCZ^bXI@pF1->GdH)ieEQVjr;oWb zwxM<|4g7=A0u4MmUNC@+=BMU!bKc?Qm8F%Lr$kF5DXBE zIB4}9V{Qu(jH*exQFD=8he3jo12w*Q&co7|GpY8+1&p(S{lZ8 zydVdo>fanu|2-0x^S@WzM&-Y;-{x?s`l~q{mH+05`fE7O{|nM7qw;U#xxf1!4qKXG ze8KPeZvqw2qj`$F#j zVUf(B{T%E6ACId4#)$e~HzNO=cF5nYi!W9G=nnaNe`ZUVMM1Ux*UQfR-xIe{^)G(F zMr=#_1~(Vqx&2rUM%6!y{Db}fRtf9kPa=VrL`UVH_)Qz&QuS|0uu=K1ji~C{@>gw|3_^Om#Y6C?2y0z=Qe)UikW}) z)jd~!mw#3oe^mQNKVc*KWH4NOB+E1^Ea2UtcA2@m>D6?T~-s(>8}o)!*MC z|K^DL>y*a%>;I>Zs(&nR^G{r&{y*Dc{+av>8$VcoeU*mu{|`IlpPjeyFIE3v{7Ev~w)C?WbinyZS~>rcwEx73*A~UABKu$~;QDWB;9?KBtk+5XC5a2R;(xYI&VFgU;QWu*n7#i8 DYO)%5 literal 0 HcmV?d00001 diff --git a/internal/ebpf/mem_bpfeb.go b/internal/ebpf/bpf/mem_bpfeb.go similarity index 66% rename from internal/ebpf/mem_bpfeb.go rename to internal/ebpf/bpf/mem_bpfeb.go index 119afa03b..e5a1a1c02 100644 --- a/internal/ebpf/mem_bpfeb.go +++ b/internal/ebpf/bpf/mem_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type memScratchValue struct { +type MemScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type memScratchValue struct { Aux [256]uint8 } -// loadMem returns the embedded CollectionSpec for mem. -func loadMem() (*ebpf.CollectionSpec, error) { +// LoadMem returns the embedded CollectionSpec for Mem. +func LoadMem() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_MemBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load mem: %w", err) + return nil, fmt.Errorf("can't load Mem: %w", err) } return spec, err } -// loadMemObjects loads mem and converts it into a struct. +// LoadMemObjects loads Mem and converts it into a struct. // // The following types are suitable as obj argument: // -// *memObjects -// *memPrograms -// *memMaps +// *MemObjects +// *MemPrograms +// *MemMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadMem() +func LoadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadMem() if err != nil { return err } @@ -55,19 +55,19 @@ func loadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// memSpecs contains maps and programs before they are loaded into the kernel. +// MemSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memSpecs struct { - memProgramSpecs - memMapSpecs - memVariableSpecs +type MemSpecs struct { + MemProgramSpecs + MemMapSpecs + MemVariableSpecs } -// memProgramSpecs contains programs before they are loaded into the kernel. +// MemProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memProgramSpecs struct { +type MemProgramSpecs struct { HandleSysEnterMmap *ebpf.ProgramSpec `ebpf:"handle_sys_enter_mmap"` HandleSysEnterProcessVmReadv *ebpf.ProgramSpec `ebpf:"handle_sys_enter_process_vm_readv"` HandleSysEnterProcessVmWritev *ebpf.ProgramSpec `ebpf:"handle_sys_enter_process_vm_writev"` @@ -76,10 +76,10 @@ type memProgramSpecs struct { HandleSysExitProcessVmWritev *ebpf.ProgramSpec `ebpf:"handle_sys_exit_process_vm_writev"` } -// memMapSpecs contains maps before they are loaded into the kernel. +// MemMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memMapSpecs struct { +type MemMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -87,32 +87,32 @@ type memMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// memVariableSpecs contains global variables before they are loaded into the kernel. +// MemVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memVariableSpecs struct { +type MemVariableSpecs struct { } -// memObjects contains all objects after they have been loaded into the kernel. +// MemObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memObjects struct { - memPrograms - memMaps - memVariables +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemObjects struct { + MemPrograms + MemMaps + MemVariables } -func (o *memObjects) Close() error { +func (o *MemObjects) Close() error { return _MemClose( - &o.memPrograms, - &o.memMaps, + &o.MemPrograms, + &o.MemMaps, ) } -// memMaps contains all maps after they have been loaded into the kernel. +// MemMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memMaps struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -120,7 +120,7 @@ type memMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *memMaps) Close() error { +func (m *MemMaps) Close() error { return _MemClose( m.DropCount, m.Enabled, @@ -130,16 +130,16 @@ func (m *memMaps) Close() error { ) } -// memVariables contains all global variables after they have been loaded into the kernel. +// MemVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memVariables struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemVariables struct { } -// memPrograms contains all programs after they have been loaded into the kernel. +// MemPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memPrograms struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemPrograms struct { HandleSysEnterMmap *ebpf.Program `ebpf:"handle_sys_enter_mmap"` HandleSysEnterProcessVmReadv *ebpf.Program `ebpf:"handle_sys_enter_process_vm_readv"` HandleSysEnterProcessVmWritev *ebpf.Program `ebpf:"handle_sys_enter_process_vm_writev"` @@ -148,7 +148,7 @@ type memPrograms struct { HandleSysExitProcessVmWritev *ebpf.Program `ebpf:"handle_sys_exit_process_vm_writev"` } -func (p *memPrograms) Close() error { +func (p *MemPrograms) Close() error { return _MemClose( p.HandleSysEnterMmap, p.HandleSysEnterProcessVmReadv, diff --git a/internal/ebpf/bpf/mem_bpfeb.o b/internal/ebpf/bpf/mem_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..d27b2efd89f46db5344724329e56ec4b8a078c15 GIT binary patch literal 30584 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 literal 0 HcmV?d00001 diff --git a/internal/ebpf/mem_bpfel.go b/internal/ebpf/bpf/mem_bpfel.go similarity index 67% rename from internal/ebpf/mem_bpfel.go rename to internal/ebpf/bpf/mem_bpfel.go index 708b6d7b9..7a8d011c2 100644 --- a/internal/ebpf/mem_bpfel.go +++ b/internal/ebpf/bpf/mem_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type memScratchValue struct { +type MemScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type memScratchValue struct { Aux [256]uint8 } -// loadMem returns the embedded CollectionSpec for mem. -func loadMem() (*ebpf.CollectionSpec, error) { +// LoadMem returns the embedded CollectionSpec for Mem. +func LoadMem() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_MemBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load mem: %w", err) + return nil, fmt.Errorf("can't load Mem: %w", err) } return spec, err } -// loadMemObjects loads mem and converts it into a struct. +// LoadMemObjects loads Mem and converts it into a struct. // // The following types are suitable as obj argument: // -// *memObjects -// *memPrograms -// *memMaps +// *MemObjects +// *MemPrograms +// *MemMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadMem() +func LoadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadMem() if err != nil { return err } @@ -55,19 +55,19 @@ func loadMemObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// memSpecs contains maps and programs before they are loaded into the kernel. +// MemSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memSpecs struct { - memProgramSpecs - memMapSpecs - memVariableSpecs +type MemSpecs struct { + MemProgramSpecs + MemMapSpecs + MemVariableSpecs } -// memProgramSpecs contains programs before they are loaded into the kernel. +// MemProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memProgramSpecs struct { +type MemProgramSpecs struct { HandleSysEnterMmap *ebpf.ProgramSpec `ebpf:"handle_sys_enter_mmap"` HandleSysEnterProcessVmReadv *ebpf.ProgramSpec `ebpf:"handle_sys_enter_process_vm_readv"` HandleSysEnterProcessVmWritev *ebpf.ProgramSpec `ebpf:"handle_sys_enter_process_vm_writev"` @@ -76,10 +76,10 @@ type memProgramSpecs struct { HandleSysExitProcessVmWritev *ebpf.ProgramSpec `ebpf:"handle_sys_exit_process_vm_writev"` } -// memMapSpecs contains maps before they are loaded into the kernel. +// MemMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memMapSpecs struct { +type MemMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -87,32 +87,32 @@ type memMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// memVariableSpecs contains global variables before they are loaded into the kernel. +// MemVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type memVariableSpecs struct { +type MemVariableSpecs struct { } -// memObjects contains all objects after they have been loaded into the kernel. +// MemObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memObjects struct { - memPrograms - memMaps - memVariables +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemObjects struct { + MemPrograms + MemMaps + MemVariables } -func (o *memObjects) Close() error { +func (o *MemObjects) Close() error { return _MemClose( - &o.memPrograms, - &o.memMaps, + &o.MemPrograms, + &o.MemMaps, ) } -// memMaps contains all maps after they have been loaded into the kernel. +// MemMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memMaps struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -120,7 +120,7 @@ type memMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *memMaps) Close() error { +func (m *MemMaps) Close() error { return _MemClose( m.DropCount, m.Enabled, @@ -130,16 +130,16 @@ func (m *memMaps) Close() error { ) } -// memVariables contains all global variables after they have been loaded into the kernel. +// MemVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memVariables struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemVariables struct { } -// memPrograms contains all programs after they have been loaded into the kernel. +// MemPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadMemObjects or ebpf.CollectionSpec.LoadAndAssign. -type memPrograms struct { +// It can be passed to LoadMemObjects or ebpf.CollectionSpec.LoadAndAssign. +type MemPrograms struct { HandleSysEnterMmap *ebpf.Program `ebpf:"handle_sys_enter_mmap"` HandleSysEnterProcessVmReadv *ebpf.Program `ebpf:"handle_sys_enter_process_vm_readv"` HandleSysEnterProcessVmWritev *ebpf.Program `ebpf:"handle_sys_enter_process_vm_writev"` @@ -148,7 +148,7 @@ type memPrograms struct { HandleSysExitProcessVmWritev *ebpf.Program `ebpf:"handle_sys_exit_process_vm_writev"` } -func (p *memPrograms) Close() error { +func (p *MemPrograms) Close() error { return _MemClose( p.HandleSysEnterMmap, p.HandleSysEnterProcessVmReadv, diff --git a/internal/ebpf/bpf/mem_bpfel.o b/internal/ebpf/bpf/mem_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..4af65725dfc1fffde6c9433c3381add4a3d3e92c GIT binary patch literal 30296 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 literal 0 HcmV?d00001 diff --git a/internal/ebpf/net_bpfel.go b/internal/ebpf/bpf/net_bpfel.go similarity index 65% rename from internal/ebpf/net_bpfel.go rename to internal/ebpf/bpf/net_bpfel.go index da8e0c87a..95f7f27d6 100644 --- a/internal/ebpf/net_bpfel.go +++ b/internal/ebpf/bpf/net_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type netScratchValue struct { +type NetScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type netScratchValue struct { Aux [256]uint8 } -// loadNet returns the embedded CollectionSpec for net. -func loadNet() (*ebpf.CollectionSpec, error) { +// LoadNet returns the embedded CollectionSpec for Net. +func LoadNet() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_NetBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load net: %w", err) + return nil, fmt.Errorf("can't load Net: %w", err) } return spec, err } -// loadNetObjects loads net and converts it into a struct. +// LoadNetObjects loads Net and converts it into a struct. // // The following types are suitable as obj argument: // -// *netObjects -// *netPrograms -// *netMaps +// *NetObjects +// *NetPrograms +// *NetMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadNetObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadNet() +func LoadNetObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadNet() if err != nil { return err } @@ -55,19 +55,19 @@ func loadNetObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// netSpecs contains maps and programs before they are loaded into the kernel. +// NetSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type netSpecs struct { - netProgramSpecs - netMapSpecs - netVariableSpecs +type NetSpecs struct { + NetProgramSpecs + NetMapSpecs + NetVariableSpecs } -// netProgramSpecs contains programs before they are loaded into the kernel. +// NetProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type netProgramSpecs struct { +type NetProgramSpecs struct { HandleSysEnterAccept *ebpf.ProgramSpec `ebpf:"handle_sys_enter_accept"` HandleSysEnterAccept4 *ebpf.ProgramSpec `ebpf:"handle_sys_enter_accept4"` HandleSysEnterConnect *ebpf.ProgramSpec `ebpf:"handle_sys_enter_connect"` @@ -76,10 +76,10 @@ type netProgramSpecs struct { HandleSysExitConnect *ebpf.ProgramSpec `ebpf:"handle_sys_exit_connect"` } -// netMapSpecs contains maps before they are loaded into the kernel. +// NetMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type netMapSpecs struct { +type NetMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -87,32 +87,32 @@ type netMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// netVariableSpecs contains global variables before they are loaded into the kernel. +// NetVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type netVariableSpecs struct { +type NetVariableSpecs struct { } -// netObjects contains all objects after they have been loaded into the kernel. +// NetObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadNetObjects or ebpf.CollectionSpec.LoadAndAssign. -type netObjects struct { - netPrograms - netMaps - netVariables +// It can be passed to LoadNetObjects or ebpf.CollectionSpec.LoadAndAssign. +type NetObjects struct { + NetPrograms + NetMaps + NetVariables } -func (o *netObjects) Close() error { +func (o *NetObjects) Close() error { return _NetClose( - &o.netPrograms, - &o.netMaps, + &o.NetPrograms, + &o.NetMaps, ) } -// netMaps contains all maps after they have been loaded into the kernel. +// NetMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadNetObjects or ebpf.CollectionSpec.LoadAndAssign. -type netMaps struct { +// It can be passed to LoadNetObjects or ebpf.CollectionSpec.LoadAndAssign. +type NetMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -120,7 +120,7 @@ type netMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *netMaps) Close() error { +func (m *NetMaps) Close() error { return _NetClose( m.DropCount, m.Enabled, @@ -130,16 +130,16 @@ func (m *netMaps) Close() error { ) } -// netVariables contains all global variables after they have been loaded into the kernel. +// NetVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadNetObjects or ebpf.CollectionSpec.LoadAndAssign. -type netVariables struct { +// It can be passed to LoadNetObjects or ebpf.CollectionSpec.LoadAndAssign. +type NetVariables struct { } -// netPrograms contains all programs after they have been loaded into the kernel. +// NetPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadNetObjects or ebpf.CollectionSpec.LoadAndAssign. -type netPrograms struct { +// It can be passed to LoadNetObjects or ebpf.CollectionSpec.LoadAndAssign. +type NetPrograms struct { HandleSysEnterAccept *ebpf.Program `ebpf:"handle_sys_enter_accept"` HandleSysEnterAccept4 *ebpf.Program `ebpf:"handle_sys_enter_accept4"` HandleSysEnterConnect *ebpf.Program `ebpf:"handle_sys_enter_connect"` @@ -148,7 +148,7 @@ type netPrograms struct { HandleSysExitConnect *ebpf.Program `ebpf:"handle_sys_exit_connect"` } -func (p *netPrograms) Close() error { +func (p *NetPrograms) Close() error { return _NetClose( p.HandleSysEnterAccept, p.HandleSysEnterAccept4, diff --git a/internal/ebpf/bpf/net_bpfel.o b/internal/ebpf/bpf/net_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..e7502ebb54105f32af102fdc39e36d755b9273d4 GIT binary patch literal 31608 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 literal 0 HcmV?d00001 diff --git a/internal/ebpf/prociter_bpfeb.go b/internal/ebpf/bpf/prociter_bpfeb.go similarity index 55% rename from internal/ebpf/prociter_bpfeb.go rename to internal/ebpf/bpf/prociter_bpfeb.go index b2a6fe6ef..1f27cf6de 100644 --- a/internal/ebpf/prociter_bpfeb.go +++ b/internal/ebpf/bpf/prociter_bpfeb.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (mips || mips64 || ppc64 || s390x) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type prociterScratchValue struct { +type ProciterScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type prociterScratchValue struct { Aux [256]uint8 } -// loadProciter returns the embedded CollectionSpec for prociter. -func loadProciter() (*ebpf.CollectionSpec, error) { +// LoadProciter returns the embedded CollectionSpec for Prociter. +func LoadProciter() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ProciterBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load prociter: %w", err) + return nil, fmt.Errorf("can't load Prociter: %w", err) } return spec, err } -// loadProciterObjects loads prociter and converts it into a struct. +// LoadProciterObjects loads Prociter and converts it into a struct. // // The following types are suitable as obj argument: // -// *prociterObjects -// *prociterPrograms -// *prociterMaps +// *ProciterObjects +// *ProciterPrograms +// *ProciterMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadProciter() +func LoadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadProciter() if err != nil { return err } @@ -55,26 +55,26 @@ func loadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// prociterSpecs contains maps and programs before they are loaded into the kernel. +// ProciterSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterSpecs struct { - prociterProgramSpecs - prociterMapSpecs - prociterVariableSpecs +type ProciterSpecs struct { + ProciterProgramSpecs + ProciterMapSpecs + ProciterVariableSpecs } -// prociterProgramSpecs contains programs before they are loaded into the kernel. +// ProciterProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterProgramSpecs struct { +type ProciterProgramSpecs struct { DumpTask *ebpf.ProgramSpec `ebpf:"dump_task"` } -// prociterMapSpecs contains maps before they are loaded into the kernel. +// ProciterMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterMapSpecs struct { +type ProciterMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type prociterMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// prociterVariableSpecs contains global variables before they are loaded into the kernel. +// ProciterVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterVariableSpecs struct { +type ProciterVariableSpecs struct { } -// prociterObjects contains all objects after they have been loaded into the kernel. +// ProciterObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterObjects struct { - prociterPrograms - prociterMaps - prociterVariables +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterObjects struct { + ProciterPrograms + ProciterMaps + ProciterVariables } -func (o *prociterObjects) Close() error { +func (o *ProciterObjects) Close() error { return _ProciterClose( - &o.prociterPrograms, - &o.prociterMaps, + &o.ProciterPrograms, + &o.ProciterMaps, ) } -// prociterMaps contains all maps after they have been loaded into the kernel. +// ProciterMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterMaps struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type prociterMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *prociterMaps) Close() error { +func (m *ProciterMaps) Close() error { return _ProciterClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *prociterMaps) Close() error { ) } -// prociterVariables contains all global variables after they have been loaded into the kernel. +// ProciterVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterVariables struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterVariables struct { } -// prociterPrograms contains all programs after they have been loaded into the kernel. +// ProciterPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterPrograms struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterPrograms struct { DumpTask *ebpf.Program `ebpf:"dump_task"` } -func (p *prociterPrograms) Close() error { +func (p *ProciterPrograms) Close() error { return _ProciterClose( p.DumpTask, ) diff --git a/internal/ebpf/bpf/prociter_bpfeb.o b/internal/ebpf/bpf/prociter_bpfeb.o new file mode 100644 index 0000000000000000000000000000000000000000..f90905f1502262522de0109e4724409c66afdee3 GIT binary patch literal 7000 zcmd5=YiwLc6+ZiL8`GwBUnD$xUD{w5XT3@KaFaILv~}yEP)uSVMMZb7*Vp#qeX)Bt z*iEZ0P}E2~6d@sks30IJ1ra3wKuVB`VkAHn>JLjrBB=clBqSnH2_qrVA4TE&X3p5x z)3p5H4Q@o^jQSpM}s^ZIvD~jh7mlaPdo>DxictY{GVoz~V zv86b#SXMluIH@?HSW+BQEGiBu28!Di2Nbs`5)i+n}icvA6%;&H{E;-X?pabB^kctmkhaYC`AIHp)s98wGvw<``PZc!wN?$5qsWijJa z=H*)2fyNJL-kVC5R*|J`V#kTZ%t!b0*!hpz`s)WRF5PI`AB&`=?d&`wnOAP+bIX93 zjTqga<3wWY7$=|~>dpAkpw4GnZl)dncAk-#_|CtVR=i(<0T#EBSwOlJ9w=8sOuf#{oQ;0J@G;fuW7h2oKIwkg{VuZs zMXrZ_x9XhJKAjL_3?MG18=+39-%ZdDs?Pm#NZZg^Ral#ctN@3UQgfHTL(T&D-)Wc5AyhJ_whmFgdi#7NH-9FgBKNLa3J@ z-&VZ`{I2RNz!$7;BK|RSOgB>ko>9FFT!sX&_kh2&dO!7FY0j9371eKr{#(r-!I)EV zeh4;9*Lpy~ANw|YXB&`({V~ra2=mHZ_8`nF_vs4cRn6-lbkmvU>~`=g3Da*KRw|336RKtSe2JnjaTAU}tW{h8@OUV?rva0Te*dlz+c zNQjK3><_~4*X#|2XPdvr?tz{0BPaQBC{F)4Z1+J>@{i-O4-!B>1f;zL{j)&Y%g~=h zLk`0(D!{!El>D3-(7Y@8y61Dh`Xn1ZoA!sB8&aSDldkInXoGR`f5zd}XWQ#bZr4@6 zR-CKcruEc!r1Xz%==r~*AI_U)zXdLJ{_i}1ZOOd2u2&n0gyDfhhYmau9)9d|-SFqL+vrs18u3iPF1q*JMKhl3=328c7w{nq z@sb>kYTa07+Rav2X?D?~Q)x#@Wj?eOQG2c^cmOQDZOe-6aSxZa1RZXpH8gmC;taS)oS(v`~?LItC8}=wj!7>ieX>IvWfP zQXe+mhaH4bNu*Vskz@{!c(Ixw5i_y0=$HgYS~rpC#OOH)S6GJM794wR zHb(7o7v`luMi)$5yV{tW?gHaZ+&&r)?XWH*L8tmu+?*Y{GaeoZio-7WcsMvF{n#i0 zmLFXdQDIhIyQ@ctwAoxhz;P|E5AE348zaFEv{~=Tv>KNFFzhTfD&cI*Z4)(S!f0k@ z$W)F5yXYN;)7@$czs=SQa)YlQ3}msspZM`yD@TR0adFbz33O`lDi zX~%Th+=6PtH>&Z{?P6D>oy1gPY75Z9gm1oBZ2?vo?6bIcH+LzsK9L@nP zHXJ~#Lw|Z#cDmE`s$Fs9;2Ami*hAxwA0C$i_E|@2)k@sx#2c@_dGT==>K!`JgOT?? zNEY`hbD!dO2}gN`cN2G}?t+eQi?IztN6Fj)d03>zBc1-__?EPI@1QUF??s+wJ??&n zzm88Oj%uFkhOdb{$Io36V`m|^N%kb$mz7UR_672J<)LKnC+{h*OLl_oPb&X`WDm0b zwDO-xb_)H?H@B)B^IK*63(9*Uf55utE~Yr=drA3^L@uy?EyY>? zrgH3!zhJ)k0p*zQ8<^Aj-r#QomYt{{v?}WacdyLvly6tA^|`X;xmh4eu7wBubNZ7s zchcj?m8pLfh{D{M{#}2_1$mzLSQN(2yHx%uLrtuP^N#keC5OgWaJY{fWV1aVfZvLR zL#{U!#(s0kPRdPKyJn8zL z$4_|tl*gAnzT)v!k6-lo+GcLjmYPpyz^e~DUi5g$l&UfAKNR|G9h#J$UDu>vP+)s_`sN7xO}>fx6@V zIao?JO6l&sr|D71e`#;d*;I3L_Bj3!6#jN+DVgW`RUrFte(CX_XkI>O^47D?spqyu fC2roXE0}Qgz-1*v9#}@wfj6Vc0Ec literal 0 HcmV?d00001 diff --git a/internal/ebpf/prociter_bpfel.go b/internal/ebpf/bpf/prociter_bpfel.go similarity index 56% rename from internal/ebpf/prociter_bpfel.go rename to internal/ebpf/bpf/prociter_bpfel.go index 060cb3e58..7fc5ac494 100644 --- a/internal/ebpf/prociter_bpfel.go +++ b/internal/ebpf/bpf/prociter_bpfel.go @@ -1,7 +1,7 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build (386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm) && linux -package ebpf +package bpf import ( "bytes" @@ -13,7 +13,7 @@ import ( "github.com/cilium/ebpf" ) -type prociterScratchValue struct { +type ProciterScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type prociterScratchValue struct { Aux [256]uint8 } -// loadProciter returns the embedded CollectionSpec for prociter. -func loadProciter() (*ebpf.CollectionSpec, error) { +// LoadProciter returns the embedded CollectionSpec for Prociter. +func LoadProciter() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ProciterBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load prociter: %w", err) + return nil, fmt.Errorf("can't load Prociter: %w", err) } return spec, err } -// loadProciterObjects loads prociter and converts it into a struct. +// LoadProciterObjects loads Prociter and converts it into a struct. // // The following types are suitable as obj argument: // -// *prociterObjects -// *prociterPrograms -// *prociterMaps +// *ProciterObjects +// *ProciterPrograms +// *ProciterMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadProciter() +func LoadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadProciter() if err != nil { return err } @@ -55,26 +55,26 @@ func loadProciterObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// prociterSpecs contains maps and programs before they are loaded into the kernel. +// ProciterSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterSpecs struct { - prociterProgramSpecs - prociterMapSpecs - prociterVariableSpecs +type ProciterSpecs struct { + ProciterProgramSpecs + ProciterMapSpecs + ProciterVariableSpecs } -// prociterProgramSpecs contains programs before they are loaded into the kernel. +// ProciterProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterProgramSpecs struct { +type ProciterProgramSpecs struct { DumpTask *ebpf.ProgramSpec `ebpf:"dump_task"` } -// prociterMapSpecs contains maps before they are loaded into the kernel. +// ProciterMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterMapSpecs struct { +type ProciterMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type prociterMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// prociterVariableSpecs contains global variables before they are loaded into the kernel. +// ProciterVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type prociterVariableSpecs struct { +type ProciterVariableSpecs struct { } -// prociterObjects contains all objects after they have been loaded into the kernel. +// ProciterObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterObjects struct { - prociterPrograms - prociterMaps - prociterVariables +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterObjects struct { + ProciterPrograms + ProciterMaps + ProciterVariables } -func (o *prociterObjects) Close() error { +func (o *ProciterObjects) Close() error { return _ProciterClose( - &o.prociterPrograms, - &o.prociterMaps, + &o.ProciterPrograms, + &o.ProciterMaps, ) } -// prociterMaps contains all maps after they have been loaded into the kernel. +// ProciterMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterMaps struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type prociterMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *prociterMaps) Close() error { +func (m *ProciterMaps) Close() error { return _ProciterClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *prociterMaps) Close() error { ) } -// prociterVariables contains all global variables after they have been loaded into the kernel. +// ProciterVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterVariables struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterVariables struct { } -// prociterPrograms contains all programs after they have been loaded into the kernel. +// ProciterPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. -type prociterPrograms struct { +// It can be passed to LoadProciterObjects or ebpf.CollectionSpec.LoadAndAssign. +type ProciterPrograms struct { DumpTask *ebpf.Program `ebpf:"dump_task"` } -func (p *prociterPrograms) Close() error { +func (p *ProciterPrograms) Close() error { return _ProciterClose( p.DumpTask, ) diff --git a/internal/ebpf/bpf/prociter_bpfel.o b/internal/ebpf/bpf/prociter_bpfel.o new file mode 100644 index 0000000000000000000000000000000000000000..9a541ebfbb99662e7df0cefe7379829e325c0149 GIT binary patch literal 7000 zcmd5=U2Ggz6+Yg&uI(m{9h$_@LMNpSc5&95q(8=OqfJ}4E(*mYfhMSEJYJ9O#rv1t z*neTk(p8I$1ojce2;>6x3QXL%IHs6U z98&ZY2NnAjyA?(8n#sV?lUEh5C|*{)sJN#1hT^K?ImH#lGm57bPbr>IJg(SKTvDtk zE+|eb9#ouCoK(yzjwxmohZH@ZbebNruo0Bct!ED;zh+Z#WxgJ70)TID4tO~ zt$0fDgyM0Lp+~!HKe=P; zOhN9LjmsUg?@jKcjbA>j{cN`5;eO@_E>vy#hK(AxRr}doF^=WKI?l}t%I$bIb(n1^ z!GQL&+4`3cdnRsEhxG>=bv)Z{GyY&e$GO?g??PbQ!uOZLdA$TZO9FY>f;?Ui3f||Q zIxza=)LwP{U%^lQ-XV5IA|p6+sQ=UwWv$H|b$YNlNBtC-Io=AMg@(}e z&;~RQ9e}Pv%TP$)COnd3j@JzCww%Uo!=L&X9x81yVz)MnQg`6-92E6Bd7>YOt*?}P zSM4nD`)W6UKTvxW_^R3*+-tCz%Pj2I)t-jE0^5T&VE;O{(cy1kL%O-vtF&O>iO27a zDdwx(8mgV=$5F=pCTNS2%z+`_z+6JJlKd8qu7&Ua1e1A{$q|DQSz0P-~=)^p1ibSGBjJn#!#3FxvNL>iI&HFZso=SPP?}5Cck%k3k{U2-!m}vDl@Wj%JZQ ze?E-h8j8a-eKv8X9@A-a3#tik72}mb`NWqF*q3Pk(|e}&Pk#QuLy{SP&~)6sfQYrL z)$V5am@}DNWf}S2zMG3PqP488$=9-B3_UZx3!A}gsAdm|O@Dx*N_%gA-e?o6tNy%7(Zv@YRb9{rqUR(?(l@9}Z z(D;;c*6aD1$U)_d>pd+pt^BLNJ61#%68tvs$@&@>pKZ#sU@LupM%74o8i&&Qg?*+f6 z{5;B2f5rL&nV+|T9q-!p=HB3)lEQo1R&Yu`ly|Q`C?8ZFmorx^p94}V%3oG~%Hhlv z)x z(+*#8_^QL#9Ddp1R~>F90be{G`)gT?dz@sV-2U3uD$hFQQx2bYc*Wrjho5lxX@{>k zeAVG=4!`X1s}2{OmC5<_JKS?Pza`1|tizvmc){V%JN!Ei$7i9feH`m;{Jg{8boeEQ zzw7Yp4!^Z;-TDpv1CoxyrAX4%u#kTAz!Pbb)*UYXf5Co#jUk(K!XDxQ4Drkp=N6FjjO+KSe;&yG z-5gA7zw!C3;U+e=iQAwbRKKG2Pb7n3$Nk6dZ)^RSH&M^wJ@Lm?3!HSwx8VPv`A_Qn zr?npE&+|L(Kb}9E=lETDTm#lQiE;a9n;+Ew8SQ^f-zWCZIJf^p@ZGfc20v#FXj7JS g|FQj~xMO`0h1x|jOs4o_C*-09Ge^e7{ST`DKTJG1F8}}l literal 0 HcmV?d00001 diff --git a/internal/ebpf/c/proc_iter.bpf.c b/internal/ebpf/c/prociter.bpf.c similarity index 100% rename from internal/ebpf/c/proc_iter.bpf.c rename to internal/ebpf/c/prociter.bpf.c diff --git a/internal/ebpf/clone_bpfeb.o b/internal/ebpf/clone_bpfeb.o deleted file mode 100644 index 091806274ed82a70ee62dc001f3623229903dcce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45192 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 XJmcOF)r)1vV{#oO&Pm7p{4@UtnTfN= diff --git a/internal/ebpf/clone_bpfel.o b/internal/ebpf/clone_bpfel.o deleted file mode 100644 index c84804e216de00c9aa920875e16f10a00f9d59b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44808 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 diff --git a/internal/ebpf/execve_bpfeb.o b/internal/ebpf/execve_bpfeb.o deleted file mode 100644 index 87913ab3c3fffae0a004a9cad6f631ad3fcf5970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22768 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 diff --git a/internal/ebpf/execve_bpfel.o b/internal/ebpf/execve_bpfel.o deleted file mode 100644 index d1daca3055c0d4d9a903a7a3998a0c1a9b0a1195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22576 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 Bx0e6_ diff --git a/internal/ebpf/exit_bpfeb.o b/internal/ebpf/exit_bpfeb.o deleted file mode 100644 index 0a2fc972b6eb391e6fc367ee6eccad2d85cc211e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7872 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 diff --git a/internal/ebpf/gen.go b/internal/ebpf/gen.go deleted file mode 100644 index a0f07fc5c..000000000 --- a/internal/ebpf/gen.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:build linux - -/* - * Copyright 2026 by Mostafa Moradian - * https://www.fibratus.io - * All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ebpf - -// Regenerate with ./generate.sh (preferred) or go generate -tags linux. -// bpf2go version is pinned to github.com/cilium/ebpf v0.20.0. -// -//go:generate ./generate.sh diff --git a/internal/ebpf/generate.sh b/internal/ebpf/generate.sh deleted file mode 100755 index 83cb87d0f..000000000 --- a/internal/ebpf/generate.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# Regenerate bpf2go bindings for the Linux eBPF syscall telemetry source. -set -euo pipefail - -ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "$ROOT" - -if ! command -v clang >/dev/null 2>&1; then - echo "clang is required to regenerate eBPF objects" >&2 - exit 1 -fi - -# The process source is x86_64-only. Always compile CO-RE objects for that -# architecture so generation is host-independent. -export BPF_TARGET_ARCH=x86 - -CLANG_VERSION="$(clang --version | head -n1)" -echo "clang: ${CLANG_VERSION}" -echo "target arch: ${BPF_TARGET_ARCH}" - -INCLUDES=(-I./c -I./c/common -I./spike/c -O2 -g "-D__TARGET_ARCH_${BPF_TARGET_ARCH}") - -generate() { - local name="$1" - local src="$2" - go run github.com/cilium/ebpf/cmd/bpf2go@v0.20.0 \ - -go-package ebpf -output-dir . -cc clang -target bpfel,bpfeb -tags linux \ - "${name}" "${src}" -- "${INCLUDES[@]}" -} - -generate execve ./c/execve.bpf.c -generate exit ./c/exit.bpf.c -generate clone ./c/clone.bpf.c -generate prociter ./c/proc_iter.bpf.c -generate file ./c/file.bpf.c -generate net ./c/net.bpf.c -generate mem ./c/mem.bpf.c -generate ctl ./c/ctl.bpf.c - -echo "generated eBPF bindings" diff --git a/internal/ebpf/loader.go b/internal/ebpf/loader.go index 1228f5cef..7ea3dc4f9 100644 --- a/internal/ebpf/loader.go +++ b/internal/ebpf/loader.go @@ -31,6 +31,7 @@ import ( "github.com/cilium/ebpf" "github.com/cilium/ebpf/link" "github.com/cilium/ebpf/rlimit" + "github.com/rabbitstack/fibratus/internal/ebpf/bpf" "github.com/rabbitstack/fibratus/pkg/config" "github.com/rabbitstack/fibratus/pkg/event" log "github.com/sirupsen/logrus" @@ -38,14 +39,14 @@ import ( ) type loader struct { - exec *execveObjects - exit *exitObjects - clone *cloneObjects - iter *prociterObjects - file *fileObjects - net *netObjects - mem *memObjects - ctl *ctlObjects + exec *bpf.ExecveObjects + exit *bpf.ExitObjects + clone *bpf.CloneObjects + iter *bpf.ProciterObjects + file *bpf.FileObjects + net *bpf.NetObjects + mem *bpf.MemObjects + ctl *bpf.CtlObjects links []link.Link iterLink *link.Iter once sync.Once @@ -56,40 +57,40 @@ func loadCollections() (*loader, error) { return nil, fmt.Errorf("removing memlock: %w", err) } - execSpec, err := loadExecve() + execSpec, err := bpf.LoadExecve() if err != nil { return nil, fmt.Errorf("loading execve collection spec: %w", err) } - exitSpec, err := loadExit() + exitSpec, err := bpf.LoadExit() if err != nil { return nil, fmt.Errorf("loading exit collection spec: %w", err) } - cloneSpec, err := loadClone() + cloneSpec, err := bpf.LoadClone() if err != nil { return nil, fmt.Errorf("loading clone collection spec: %w", err) } - iterSpec, err := loadProciter() + iterSpec, err := bpf.LoadProciter() if err != nil { return nil, fmt.Errorf("loading prociter collection spec: %w", err) } - fileSpec, err := loadFile() + fileSpec, err := bpf.LoadFile() if err != nil { return nil, fmt.Errorf("loading file collection spec: %w", err) } - netSpec, err := loadNet() + netSpec, err := bpf.LoadNet() if err != nil { return nil, fmt.Errorf("loading net collection spec: %w", err) } - memSpec, err := loadMem() + memSpec, err := bpf.LoadMem() if err != nil { return nil, fmt.Errorf("loading mem collection spec: %w", err) } - ctlSpec, err := loadCtl() + ctlSpec, err := bpf.LoadCtl() if err != nil { return nil, fmt.Errorf("loading ctl collection spec: %w", err) } - var execObjs execveObjects + var execObjs bpf.ExecveObjects if err := execSpec.LoadAndAssign(&execObjs, nil); err != nil { return nil, fmt.Errorf("loading execve objects: %w", err) } @@ -103,20 +104,20 @@ func loadCollections() (*loader, error) { } opts := &ebpf.CollectionOptions{MapReplacements: replacements} - var exitObjs exitObjects + var exitObjs bpf.ExitObjects if err := exitSpec.LoadAndAssign(&exitObjs, opts); err != nil { _ = execObjs.Close() return nil, fmt.Errorf("loading exit objects: %w", err) } - var cloneObjs cloneObjects + var cloneObjs bpf.CloneObjects if err := cloneSpec.LoadAndAssign(&cloneObjs, opts); err != nil { _ = exitObjs.Close() _ = execObjs.Close() return nil, fmt.Errorf("loading clone objects: %w", err) } - var iterObjs prociterObjects + var iterObjs bpf.ProciterObjects if err := iterSpec.LoadAndAssign(&iterObjs, opts); err != nil { _ = cloneObjs.Close() _ = exitObjs.Close() @@ -124,7 +125,7 @@ func loadCollections() (*loader, error) { return nil, fmt.Errorf("loading prociter objects: %w", err) } - var fileObjs fileObjects + var fileObjs bpf.FileObjects if err := fileSpec.LoadAndAssign(&fileObjs, opts); err != nil { _ = iterObjs.Close() _ = cloneObjs.Close() @@ -133,7 +134,7 @@ func loadCollections() (*loader, error) { return nil, fmt.Errorf("loading file objects: %w", err) } - var netObjs netObjects + var netObjs bpf.NetObjects if err := netSpec.LoadAndAssign(&netObjs, opts); err != nil { _ = fileObjs.Close() _ = iterObjs.Close() @@ -143,7 +144,7 @@ func loadCollections() (*loader, error) { return nil, fmt.Errorf("loading net objects: %w", err) } - var memObjs memObjects + var memObjs bpf.MemObjects if err := memSpec.LoadAndAssign(&memObjs, opts); err != nil { _ = netObjs.Close() _ = fileObjs.Close() @@ -154,7 +155,7 @@ func loadCollections() (*loader, error) { return nil, fmt.Errorf("loading mem objects: %w", err) } - var ctlObjs ctlObjects + var ctlObjs bpf.CtlObjects if err := ctlSpec.LoadAndAssign(&ctlObjs, opts); err != nil { _ = memObjs.Close() _ = netObjs.Close() @@ -387,37 +388,37 @@ func (l *loader) Close() error { // Replacement collections share maps owned by execve. Close only their // programs so the canonical maps are released once. if l.ctl != nil { - if e := l.ctl.ctlPrograms.Close(); e != nil { + if e := l.ctl.CtlPrograms.Close(); e != nil { err = e } } if l.mem != nil { - if e := l.mem.memPrograms.Close(); e != nil { + if e := l.mem.MemPrograms.Close(); e != nil { err = e } } if l.net != nil { - if e := l.net.netPrograms.Close(); e != nil { + if e := l.net.NetPrograms.Close(); e != nil { err = e } } if l.file != nil { - if e := l.file.filePrograms.Close(); e != nil { + if e := l.file.FilePrograms.Close(); e != nil { err = e } } if l.iter != nil { - if e := l.iter.prociterPrograms.Close(); e != nil { + if e := l.iter.ProciterPrograms.Close(); e != nil { err = e } } if l.exit != nil { - if e := l.exit.exitPrograms.Close(); e != nil { + if e := l.exit.ExitPrograms.Close(); e != nil { err = e } } if l.clone != nil { - if e := l.clone.clonePrograms.Close(); e != nil { + if e := l.clone.ClonePrograms.Close(); e != nil { err = e } } diff --git a/internal/ebpf/mem_bpfeb.o b/internal/ebpf/mem_bpfeb.o deleted file mode 100644 index 11508e9f158433e53380583dbc8c08bd4fc2e73c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32216 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 diff --git a/internal/ebpf/mem_bpfel.o b/internal/ebpf/mem_bpfel.o deleted file mode 100644 index 486ecb3895c0573265b77acbde47bf943df265b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31928 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 diff --git a/internal/ebpf/net_bpfel.o b/internal/ebpf/net_bpfel.o deleted file mode 100644 index ca639ddafb05f690ca4ee25c37bf6f989533114d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33312 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 CHa%nj diff --git a/internal/ebpf/prociter_bpfeb.o b/internal/ebpf/prociter_bpfeb.o deleted file mode 100644 index 605d00f7e0ed0017031f5d3fdd2058be922d5864..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7136 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 diff --git a/internal/ebpf/prociter_bpfel.o b/internal/ebpf/prociter_bpfel.o deleted file mode 100644 index 175940972b3e30d9b9ff3d71f13071c85d433a5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7136 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 dcdRd Date: Mon, 21 Sep 2026 10:29:16 +0200 Subject: [PATCH 2/2] fix(build): Point Makefile bpf targets at the generated package Make looked for bindings next to the C sources, so every CI run rebuilt and failed the clang 18 drift check. --- .github/workflows/linux-port.yml | 2 +- Makefile | 43 ++++++++++++++++++----------- internal/ebpf/bpf/clone_bpfeb.o | Bin 42672 -> 45224 bytes internal/ebpf/bpf/clone_bpfel.o | Bin 42288 -> 44840 bytes internal/ebpf/bpf/ctl_bpfeb.o | Bin 20648 -> 22168 bytes internal/ebpf/bpf/ctl_bpfel.o | Bin 20264 -> 21784 bytes internal/ebpf/bpf/execve_bpfeb.o | Bin 21424 -> 22792 bytes internal/ebpf/bpf/execve_bpfel.o | Bin 21232 -> 22600 bytes internal/ebpf/bpf/exit_bpfeb.o | Bin 7720 -> 7904 bytes internal/ebpf/bpf/exit_bpfel.o | Bin 7720 -> 7904 bytes internal/ebpf/bpf/file_bpfeb.o | Bin 72800 -> 77944 bytes internal/ebpf/bpf/file_bpfel.o | Bin 72032 -> 77176 bytes internal/ebpf/bpf/mem_bpfeb.o | Bin 30584 -> 32248 bytes internal/ebpf/bpf/mem_bpfel.o | Bin 30296 -> 31960 bytes internal/ebpf/bpf/net_bpfeb.o | Bin 31896 -> 33632 bytes internal/ebpf/bpf/net_bpfel.o | Bin 31608 -> 33344 bytes internal/ebpf/bpf/prociter_bpfeb.o | Bin 7000 -> 7160 bytes internal/ebpf/bpf/prociter_bpfel.o | Bin 7000 -> 7160 bytes 18 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.github/workflows/linux-port.yml b/.github/workflows/linux-port.yml index e9a9c62c9..68a0b432c 100644 --- a/.github/workflows/linux-port.yml +++ b/.github/workflows/linux-port.yml @@ -35,7 +35,7 @@ jobs: clang --version - name: Check generation drift run: | - make ebpf + make -B ebpf git diff --exit-code -- internal/ebpf/bpf - name: Unit tests run: go test ./internal/ebpf ./internal/bootstrap ./pkg/event ./pkg/ps ./pkg/api ./pkg/util/signals diff --git a/Makefile b/Makefile index 80cf47850..f2a352ba9 100644 --- a/Makefile +++ b/Makefile @@ -1,25 +1,33 @@ .DEFAULT_GOAL := build -SHELL=bash -o pipefail -e +SHELL := /bin/bash +.SHELLFLAGS := -euo pipefail -c BPF2GO_VERSION := v0.20.0 # Specifies a list of build flags -TAGS ?= "" +TAGS ?= BPF_DIR := internal/ebpf +BPF_OUT := $(BPF_DIR)/bpf + +CLANG ?= clang +GO ?= go +GOFMT ?= gofmt +BPF2GO ?= go run github.com/cilium/ebpf/cmd/bpf2go@$(BPF2GO_VERSION) BPF_FLAGS := \ -go-package bpf \ - -output-dir $(BPF_DIR)/bpf \ - -cc clang \ + -output-dir $(BPF_OUT) \ + -cc $(CLANG) \ -target bpfel,bpfeb \ -tags linux +# Production headers first; spike/c is only the vmlinux.h fallback. BPF_CFLAGS := \ - -I./$(BPF_DIR)/spike/c \ -I./$(BPF_DIR)/c \ -I./$(BPF_DIR)/c/common \ + -I./$(BPF_DIR)/spike/c \ -O2 \ -g \ -D__TARGET_ARCH_x86 @@ -28,30 +36,33 @@ BPF_CFLAGS := \ BPF_SOURCES := $(wildcard $(BPF_DIR)/c/*.bpf.c) BPF_NAMES := $(patsubst $(BPF_DIR)/c/%.bpf.c,%,$(BPF_SOURCES)) BPF_TARGETS := $(foreach name,$(BPF_NAMES), \ - $(BPF_DIR)/$(name)_bpfel.go \ - $(BPF_DIR)/$(name)_bpfeb.go) + $(BPF_OUT)/$(name)_bpfel.go \ + $(BPF_OUT)/$(name)_bpfeb.go) -CLANG ?= clang -GO ?= go -GOFMT ?= gofmt -BPF2GO ?= go run github.com/cilium/ebpf/cmd/bpf2go@$(BPF2GO_VERSION) +titlecase = $(shell printf '%s' '$(1)' | awk '{print toupper(substr($$0,1,1)) substr($$0,2)}') .PHONY: ebpf ebpf: $(BPF_TARGETS) -$(BPF_DIR)/%_bpfel.go $(BPF_DIR)/%_bpfeb.go &: $(BPF_DIR)/c/%.bpf.c - $(BPF2GO) $(BPF_FLAGS) -output-stem $* $(shell echo $* | sed 's/^./\U&/') $(BPF_DIR)/c/$*.bpf.c -- $(BPF_CFLAGS) +$(BPF_OUT)/%_bpfel.go $(BPF_OUT)/%_bpfeb.go &: $(BPF_DIR)/c/%.bpf.c + $(BPF2GO) $(BPF_FLAGS) -output-stem $* $(call titlecase,$*) $(BPF_DIR)/c/$*.bpf.c -- $(BPF_CFLAGS) + +ifeq ($(strip $(TAGS)),) +BUILD_TAGS := +else +BUILD_TAGS := -tags $(TAGS) +endif .PHONY: build build: - $(GO) build -tags $(TAGS) -o ./cmd/fibratus/fibratus ./cmd/fibratus/ + $(GO) build $(BUILD_TAGS) -o ./cmd/fibratus/fibratus ./cmd/fibratus/ .PHONY: fmt fmt: - $(GOFMT) -e -s -l -w pkg cmd + $(GOFMT) -e -s -l -w pkg cmd internal .PHONY: test test: - $(GO) test ./... + $(GO) test ./internal/ebpf ./internal/bootstrap ./pkg/event ./pkg/ps ./pkg/api ./pkg/util/signals ./pkg/filter ./pkg/rules .PHONY: clean clean: diff --git a/internal/ebpf/bpf/clone_bpfeb.o b/internal/ebpf/bpf/clone_bpfeb.o index 45c82786e0f3bbefd17a7cf424079da7e2846b67..b8237d893fc6f55307b3ed0e75706f9b5ac4c440 100644 GIT binary patch literal 45224 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 AlK=n! diff --git a/internal/ebpf/bpf/clone_bpfel.o b/internal/ebpf/bpf/clone_bpfel.o index e81f9adbdc06667c2660c4becf7547706dd020b4..237b36968fe0fa6dbcb71abbc48717f6b2c28918 100644 GIT binary patch literal 44840 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 literal 42288 zcmeI5e~_a`de>VTd#zos?eX5Oteow;*LP-4>#TRjUgsiw&PM*RKAGD)557GZpD#$V zM!On3JENN)Ysqpd;&6xv4os!Opi0a!IpCtA9GI$Hu?igQ07oIJTww~5Vj!k6q#RJy znX0L)!0C?z^L@I%t$Fo~#y<#{gHqSN^Yo{m{@wjPZ+A<2_h-&ucrqG^81EwH`(}@P zs4=^Leb1k^-n6+JF{|-$OVvAKR$g<$6n_2>-;sdp->|{vrl>K0_|7};Bvj@<3$+A& ziKX6XF4_c_Z!#u;??uX5J&7EQsnr9@1m!qojM7l{Y)Q5HE@hW;hjN>8i?TzxN!g~{ zplngDQ#L7ADI1h^$_izfvP7AqoTi+j%uuE&QmSK{-wtqcoH~=`QrwE@hW; zhjN>8i?TzxN!g~{plngDQ#L7ADI1h^$_izfvP7AqoTi+j%uuE&QmSK{-wt zqqM@*%H&*N1Fj!(;WFQD#Z^1f+c!UZL+0o8f=hSphQ0JM!LB(pf0feD|7yb3XRn-H zTTU_dl?bwb=Nd+53~34@{w|HG@r96uN`(3 zceBX(6Xv_NAEfET#2W3y8tudy?Zg`G#2W3yTF>@JZEcsbOSwb2O}Rzc zq1>cwQ*KbUDAy^Ql&h2t$~t9*vP@Z`%u!BLPElqk)08R7Ny;Q;K$)N%r;Je=%AOrh zw4bs|xkI^4xkcHb+@x$%Zcw%;*D0HntCS7OI%S2jOj)ALQBG4%QD!L9lqt$d$|Pk# znV=k}j8R%)=l6~9)()|pzYthO;p$yh_V3rYMH^r2$8|iH#L4|}8?M?_m#=?b6|Opi zQ8;v5qL~+Q1-J@_Tz#(R0dO~A6iSeC-$@N6KQBKCzb{AXAuYVVggZ;wiF>mgv(~RwJ&QT0G-8pS1Ez5o`XCKCoPi zyYPI($wEA5!>bWjPAy&`yK-vrIyr4+E#4q!$gAWja+5qwUMJ_sEpmyxK`xWqcbx@-Epur_mqe zN$PjVN%A(?)eHSicJ;z|kX^knUSwCVYNSne^{PfT$gW=1NQ><1RgJ8ZUA?N2CfU`i z8d)W~dQ~G0va44$QYX85RU;L$t5-ErCbzAuMoQ!ja*o_0Pm|ZlQ{*N&LtZ7P$qjOf zTqjSGD^}+7?zy&SFJgAS7UC}a{jMYZ^GlvL;=~@lf=jQ9uk*QijnB*4OKv?}EsRUD z0lP2uGW`51Ltibq`c=Q_(iL9%VC&9(`$}XNAm0}$Yh^d@YGpUyYGuyk2qU=y^Qno2KC|i{4lugQ2N;j^xa-CeEEK`;!bClDRQz{=C{N_aLA% z9s}#!{{7~^ACBIV^X~lDXYop9&K^8NA@!mrDZ8sTn}A6dawALQq`6J^I=lUT5)6D9Jvl_#QhSkV?IuP@qQ zbDR4)lF8rW*#FL{`sV^0a3aF`9&_asCfx6i^0&Ks7UBsTFE2mZg3B)s_QTW6zjogT z`~Le0TENloj4HNYYw=Ah@w*Ljhuk1%tt&dC3caoF#QhW*aoe_!PNe*f!J6U5jjL(oUN47HmXc>>&tOU{Mhd^|_SMETV>Vacwa z240&r9(6a21AfE@KzEA1=6CQ8ix|;i&tCzjz1pMSk8z-BZirK-p}QD5COv zmAE zcf%w)PM$7&gqvTWKMnbd^w%N(8vUD)uhB1+`v&~dmudK4r#}b3JYfP{b@+eN`%&OO zf*&p>W4$Rp_&<(6|J-_wecMaS`Q@)|!`<-M6$kPX7w%X7MBDbO^m7`Q^sDq`9hda0 z%+pO={{|P_t@q#$vl5QpD}S9E=rccu!{vRF5vBeIjiWE`cU|0D{}^Pryd?907$`5; z3y(^h#f8iE<1A%=3RfDJo+jIN3BP`Q{IQ7X{RLQ$WMmC|1|vn0cqj<{p547{rwYANPo*X{WBO? z_^mDOz@J8#xHsT`3^KsA#qc!zzr*kx{Qn+)WPF3<^&jDX6jIzDzz-J_yYO8V=W(kt z=6j(y5`=sP#(V;X9$`nHVEnLN#w3ZGPxMa?(aW59j(Qm%0zy-K|R6KA2t})~gVLlfn5KhXIIS1!PVRnAmWV4Sx^UR~q zX21BEYTa?xDLSF*+V<;B_Jk||z=Z^^8jeGu{G@5=nr?B)65OdwgT zeEJ~?#@~MM+`|0jK>nB)idAzpKetjeGm8u5Y++#qDV7S0`Q<_>>lFFL%ahn#UVcFS zJScz8noD!}%S&c?ab>=cUoOs=a(>2Knw=}o=dTn^ex+hoQc`AWugF3vzvwgeGFvL< z%La*_pF&ahskE@TY;4Q>VU`NZ6;sO3&&(C~%FPy_Dw^f;8C0c^pPO3}kE;`P=-=Yv ze17gs@%i$lGlerY#cB9Y7tGz&CZ`YQJWe@qfuasvn zn+EHSY9pglfvwkLQ%`0e{lc?II&`vBW|s}J92iK19W;)6DqoSop@QCx6!P3RO12ZB z2+m;?(2)!C2Mq$}HyR=nIMi$;nV1OfTbM^r*dY-;W{ABVlIQ=_MR&tLe&OjaoIiOo zsF}mQo-*u3mbW-NfBE^9OWDQZQgQKWF*)HT%H9YTPhvo&SX)NXW+YR{jgMqy@A`wP zzh@WRQ1o-Msq7S5s?Ha(mx^LCa0_MgGc!r6JQX}3vG>if;=l|m+WA$y|J?HImEzKJ z{z^GJzr@euMCcwkrF1HS2fGt0nWD2ZEa$)( zDzR2(XE0%h#DpU2r?RcTM6!3Yy)z`pB}D3T=Yq2jx*FjYKs;()5OVTKU1=`ZrDpj) z2f16q^%Z-EQNRD3c>2Rmwtc&tUwT2ZUxL9dEC+&F`tLibvlFd!btslWjg2(L6zx5; zFjK^RmY>U(^Kws{%Zm#zIdjGQ42-o^6c%C7=a6!7=w4Z6eHFLy@hAiBuYSt z^Sfz^P^p=v8nov*fT%Ul6}_6T8D5) z`Dfn@p4h{meKM&emN)cEE6-oSlSzyyRKpi7XWwnra#ofYep!P0hF3Ia`$poR)mU&J zmMUnQSVlie@(__K;(mX=h$m5gCcA>CQF6jY=y$axJdN;lm|t2Bt}bA@-se_6TntHD zVb%{=HZeD~UJCa>|B*hV146oR5?R4zFD)#-a6p$?)w@&*Yo+(7(D2NqI##oa1zPqfE0TwpP*1G&d4Ygic3qr(b?yhFP&N1uaQY2W^wA7r$3uKFat5n`=2V_ zfDY3YO0#n_m_YWnw-CJia&V8g%zl~je%3_RCiT|?HZS+g#Wcdr=}h}T@T8bZu_M+} zQiXUf0Uy@`DeNsg@a%!Zf8mSg&1uA3GIO(q;`|a0)8uSCuv=rC<3P%F6bE|i zxL(C!kL<-8*ihr2b!YK+%AF5c{&D<0=guxHpU2;ybY}^cKa0O#4e?Xp-wN^P!0&|k z^WX>E`2l>!JdNv8h@Sz=xq#G3_Vwca7W|vI?m{i4zMdZf%UM|uI{Ad_(6`3ydpm_c zC2iXrv*+8w&x-y#V@A#|B)#Q_-1|U9KLdUAjWN@N6#Xwi9!;a4$lrv#1&3N2kP`nN zivF!J(+=?=@D};^ArHSjW_pmmzERXy`d0ctoP@ssK9ksMmv8`$g{BfkQ^?F|eP%8~MZ9ej8j^(SwN{{d>S|S(MjAlisfKj>MQyq&?mq${?p*tcksSm@+;s&9h~tq{wnzP`j|bW>sfYLwxIykg|B+uB zGpiv!3T~2b$KiauiT(`nZQvI90qCQzfsv2&&sE`dFl@H;&+Fiuw_vwId=t1${-@A? z?6-~C4Dm7WHu(=Ezc=w23;AZq=v(M>*mTKX>{T=ovCjzkj7pq@KZkfGxo5||4nBmN zK0*E81%Dc0=Z|B;Bb-=Y`33p@qAv@?NQR_uL=?CpJ>?CpI6Ea|~kw*k7YfMrD5M*i+#pY&$74AV!wTTqo}X!RrcBESCoAQkLuoB`N%%I`$5*{KXmpP_DarN_Sxsx{vWf?sIQzA?X%C{QuY}7`VXZ4p)}wXsjo;a`YrhA+<*hxt=Jo#k#Ou>YFZ14?`%aVn zxo-|E`F|hz9r{6}e_kSbIrlA7FNf`i-j0|$Sn~7dyc=XWpOkZ69JN}#Kj+;d`*Yqd z*`M?F$o`zyp9}kQP#neC{QSBSM{9kSb6#wHZ2j#yZY*kA-u(VJ3D7ZuY zIqBmW%qci)B01o}nF7d{RS z$k)Kp0O#7|?}6_~Moor%0^f%`bPDJ0qV^nE@_!WiJ2FwTO1-e0 ztIN5t=)WTR3sJKk;v?V|`9cC z+jG|(`h(}T{@gVdVmWv9=g$7zH9@_woV)sSXn*eN&!L6o+;x)i{kdx@#B%PMCi`>O zOo-*&b&BlIU8h4V=dL-jKX>)#+{q;Kf>+TZ9H^jGt zSINHx{n#AFhiuPPE9if+zu#qDGle;a;}DZWU#B2{UjRz=_D^AWTKa6r@&;4PPBWuSGqa3m27*4Z}agzS_{V%pE%wn6uEVfAa zORx>%#P)>sVrzu`c*i)tzrpyEiqmR7h;5Pde*7EY@c4`E5ccEm=aa9G*ots{5cNPe zW>DE7Zp>hk4RK@qsbJg6IUUo{^LwDJ9?6oaZUBfo$e zbWPmH$3pFjv5BV;?RI=~eTvZo%JYaX;gc%7VDs7QhXm%oxPQg?Wrrr9{5YiKEqAaaQoGLDNZ`w zI{6*QG1SOAAAj41@Ac;vY?`=T+g|w%9s9ZDQ+w7DBf1w zRV;QK{DsCxmEAA-XR@_zGQ|#?szx}lD zo|B4GiZhC*6_*rO6gLz%6}J?(6?YVGEAA@pDVBAWIN#oc;-un~;*8>H#U;fR#SO(x z#Vy5c#T~`lio1$?ie-;B(0;|T2MgN+Dc(`M ztJp6UeR<=d=bO|oP&}zPtysQOCeG)VQ!IPru)YyuNz+u^QruQ7zw7n+N&4{fTez$A zJ;gD3h{8!+xe|)~e#q-nN}o|IXCdNz{F35|;)dd;;+EpJ;*R2N#a+cc#WAjze0>v& zlZsP{Gm57bmlVqxNVtC*ikpgCirb1iinkSa755a!xc=|AUvW}#N^wTlltQM{|zZ|Qyc6)D9T#nXyQiYtm6ikpgCirb1iinkSa755a|7dNo~rF{w6)WJ#ng_DX?iZhC* z6_*rO6gLz%6}J?(6?YVGEAA@pDYh>J3bi-Eqnv*G6{i$u6i+KIDXu7PC~hilDQ+w7 zDBf1wRoqh?lTClP{fd){Q;IW+rxlkJR}?oCHx;)Ow-t93Z!7L9?kSG(h|Z69LUB@Y zN^wTvUJ;4+*RCD9OKcejJKpuC{8L)Db6UKR$NkCQQT16RNPYBR@_m%t+=bWr`W#0 z4DIf>Uk=VgoK&1roKZZjxTLtExS_bIxTUzQxTAPmaaVCqag0ao{q`$PDo!cRD4tea zQe08oP~249QruSDQM|3VtGK5)#*a?=?N^*soKl=oJgvB-xT3hBxT(0MxUIOOcw2E- zaZhoKFOloFUvW}#N^wTxQ$_ql_{CvJk@hQcRC_aA2op;^+ zv5yD$eBwtw8b6URrY!NR`?7wy*oTb#yy$|rf>N|BfkuB(5Qib&XEr_S_%9Q2&^XBwY^@^1oU*q45 z5zfC~sk3$-3>`mP{Mms~-z)Zjbm0hY(*68JNB{}02k@>487$B0tCoXhI+KZpJu*8UvN*V6CN{?8))u=1Nj+Arr6 zy8MqEQ2sj4JKn4Pw;fP^dr14Gp1S<|4(R_jpHF&n`t-=kx`_k&Kk>5D2TtI9{oj@^$icl=`~Lyr4D0_C%g;$Ba8kY;8SC=@BEp81zjYrJ;@)HYe-=@O zmERoFemSz#<$n=jL(9J(3b^-b|I>&wto-(n_REyg<^MN?4J*H!f&$Keug}q5de7g3 zXIS}(pLQ{(7*YCPj&OAO&!KQBUv;x-KjsqhnBM{ZO5CuU01QjtVfxi@WcYpgJ{Ye~ z+Lx#3rXP1P?&Lny$Jh4rKO_CH_LtcH91}|WB`aUPpZ{Xsbekl}@|Wc=zGudDjw81| z@_vzGQ-+n_Vfh-u{LfC<{?HY+Y@ Qno3D0A5r@9xxF?26aQh{i~s-t diff --git a/internal/ebpf/bpf/ctl_bpfeb.o b/internal/ebpf/bpf/ctl_bpfeb.o index fc3dd7f5939044c457c3b8b4fd92674a3037fbc2..63c85584abdebe8666b8ed7c18b95adafcb63e7a 100644 GIT binary patch delta 5829 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 diff --git a/internal/ebpf/bpf/execve_bpfeb.o b/internal/ebpf/bpf/execve_bpfeb.o index 7b84f35fac0071792d9c67dbaaa0c20a570688ea..3a22c38b0cd02e2bd676fa3fa2b3bab3fb9600b1 100644 GIT binary patch literal 22792 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 ScH8;w`wU5QH*G%O;r|9dU0Oc? literal 21424 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 bqDQ2^V$UK$?pZq=53&F3{vl=b{7?M{X?ge& diff --git a/internal/ebpf/bpf/execve_bpfel.o b/internal/ebpf/bpf/execve_bpfel.o index 265b9cc7e0ed8d62fa0618928c7017cd4d74a1d3..300111f3a935bc00457ad72806285b72ba6c1850 100644 GIT binary patch literal 22600 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 QvBHw>4q@?x>2+fM8`xqyy8r+H literal 21232 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 diff --git a/internal/ebpf/bpf/exit_bpfel.o b/internal/ebpf/bpf/exit_bpfel.o index 88d910d01e7ff8745faa1f05d091ff882a64ae38..92dbc6818a50023a13ca5807016b2179138058b8 100644 GIT binary patch delta 1329 zcmZ9KO-NKx6vxlI-|)b`Bg#0zc3MPBS}Fyc95TdHe>t|zX!SDb^KxEKI8_TMVYFR zcR@K!12ny6fRPq045=WF(%s3&(edC@a-z<|#!b;W9JK1>uj(-HO(P zA$F`|=GDJr1p5?i3CBI?AB2g`a=jI-E-4B-oT2k<6clBl+;9tO%_+*cI0BvlC-KlE zG?*jG3(rBVDWU}zSAmy>%TRNgXwAg|@VdkK;mlgUlAVS@;Z86>$H;<52S@Q6F;#4?ITV!+j4)!*gi#HPICphrq+aE6_cQ zL^p-MLVe3bBf@R?L}IH%qb?4D?+FiZ9q%s-j`EJ#2*Suo!wp?$4HyM|-AZ?c;c@t( z?a;Jv$1dj6aeYj`x0+hsNf&SFINSryS8H#9`J7jq-h;Y3YGsyyL>|h^BQ|21w-XPI z{4+#xQ3#Ly0f}YH2YdF|x8(NA;`8C$(FBN)M_-Q4X8g#rQp9~w0At<7LF5HF0x!e$ zl8d>%=;A8ynv1K!8!qPm+y2jrLd6HQZ>y)9v1Du-JaFShInAUp4TDztos{YsnJ@k8kdYGdZjUC%;;B%C9z5ir;5WMue00dmH@}&AyYt@8#+gcA zF)KC`uMSL`M!EXJ{MMXrG!yYJOhkX-Ze(*GMcpg2J#{%b!QuR*Yi4a%zS7X7>rugG6 z!)=E5J8CToqPo0f?=cR_TlR6V(UQh(;1$KIPYn z^19Q1B#szcE3_BNO|u=|!F)K*Kak&@&hF2uid#C4Xpc9|ZU@X4Olg~Y<=Lns>(Ti< zZqgk%h&$}On+J*wH%h#FPCbHiylNV=yR2~wxUO+4cwJ+D-|zn{$X7Kx-V5W8{22ey z(iRSe?8q+pE>V*ab5L&Vj`@2N*aE9bBl$)&qVjF>gHe(9QaK|l7gGKH0oyBBmqt40 eFSL79mV;@om`e9&Gf^+59}M$O+#FlX6Z!`rxshW4 diff --git a/internal/ebpf/bpf/file_bpfeb.o b/internal/ebpf/bpf/file_bpfeb.o index 6cba12704f041b853fc6a662db0fbeee251993e1..2ff0423638709ae6cd7498506a98696a022c3436 100644 GIT binary patch literal 77944 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 SgY!RXxN~d2Gz^db>HiHkxuCKD diff --git a/internal/ebpf/bpf/file_bpfel.o b/internal/ebpf/bpf/file_bpfel.o index 86647ff9b619cec423ff886acb6ecca40b47e3a1..42919ea6be3ae8c9e3a5b245f0e1399b09af530b 100644 GIT binary patch literal 77176 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 literal 72032 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 DYO)%5 diff --git a/internal/ebpf/bpf/mem_bpfeb.o b/internal/ebpf/bpf/mem_bpfeb.o index d27b2efd89f46db5344724329e56ec4b8a078c15..789506c53f60bba3ebb51fc06a387b66e2214959 100644 GIT binary patch literal 32248 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 literal 30584 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 diff --git a/internal/ebpf/bpf/mem_bpfel.o b/internal/ebpf/bpf/mem_bpfel.o index 4af65725dfc1fffde6c9433c3381add4a3d3e92c..5d167155c1fe6007eabdf0ef3e4c0424d1d8988b 100644 GIT binary patch literal 31960 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 literal 30296 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 literal 31896 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 diff --git a/internal/ebpf/bpf/net_bpfel.o b/internal/ebpf/bpf/net_bpfel.o index e7502ebb54105f32af102fdc39e36d755b9273d4..6757c2ddaced3058f26040363a0d9c24fd1d631d 100644 GIT binary patch literal 33344 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 literal 31608 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 diff --git a/internal/ebpf/bpf/prociter_bpfeb.o b/internal/ebpf/bpf/prociter_bpfeb.o index f90905f1502262522de0109e4724409c66afdee3..e93d91e49b93252f6ccb2e1fd343e3b520c79d5b 100644 GIT binary patch delta 434 zcmca%_QQOFKI4v!2HFCwIt&a<4wDlElo^#Kw+Q$%vQ54sV9Z+q6lG$7g3T;~^-Q5_ zfjnl22#Wwr3P>+Qh%@X!5}%I{XFh=>J_AYo$K(p(-SzB15k{zr1|ZFW;IrNVvO)4J zKnw(|FMtF{9>)IyWOE_-Y(ORhHxi!*$Od7kdNvgxn-jrj0D6D(CJ|XC#(>Ee#8!v{ zWq^Pgqyyw47JeZCL17Wm$@SthWPF^Q4B{;rz?3gUJa3%8ZJWTLk~=v+#y`W(EcZ zMj!@(1|VhuVkn>W4v-C!2Z;dz>kA+OV#D}ffNVAdAH-x}N8>nA;Vb@R1N|&CM!s8XVjQ{L-IeP y$K)GQ?u6{O9$L{>oLnJ!FDkTz$mm^?$;UNHb7#&82jgZ#n-<%8S;0ulgNA}D|)RbmEI{0H;oBH=^z>_BbdIYAl{MzOqoL{QwU{fFu9P$b#jD+1m}Nokf{s| zTPIgaY-gM?*--L7gUPW1%8ZJW8wLCsxh7u}Fy1U8Si>~=gYcGmW(Ed^ z1|S9jMj&PZ;ybJ$9)t~&e}TjY$$vrOvw;+X35a@jAeRS;&jIACAn`$3b$}QIfM#u0 z78PY;jG1gHzMh?%kB66EKydPZ@fnkgSR5z+kdWZ47l$aFF@8p*Fo2u_0um640RU5>C|>{o