From cf31ee068efd45891b12364979227e83d294633f Mon Sep 17 00:00:00 2001 From: rabbitstack Date: Wed, 16 Sep 2026 18:20:18 +0200 Subject: [PATCH] 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 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 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 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 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 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 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 zcmeI5eQ;yfdEO5I5(Iap6&y=4?8wqp>?l}ywZe+}fMt0LeXI<{Yl)H9Hf^f~uq3o# z#U&w+@C&m`tf)?X8K3W{BO8J z9(@ZOzfrVQ;OARSY^7q-LMzXkl<2EX`7~y_bLG!OFW)Jj#*78VT)A@P&oVZ&^|BwI zcFx!bnCGZ5XTKe68U8T0DO=^Q$r`D)t>J)X7TBH`Jd1{WDr3TatHBC)XMNogUN8P3Ns5{hc z>K1jA+NEw#*Qp)q8nsPbrM9R|YJ*y*)~IFb6m^nXq!y@oYL1$v2Gk5SO-)fn%*8R+ zA1@|NAbhzjpT@Ai9l5x6Wlvc3&pq8gFW)br(60+teEj&U4$VKH`u@N233oq)^4XOj z)n=@W{(t3FTUwKt{anZq!E_R%Ciawse|1$pjnUy= z4a7Izcr_>5Z?8}J_WMBD91{QO-}wH@f0McLEs4ka$NrEb%&5826aR~|@jA6eEmK`T znT=19i_`+u^^@7SEiux`(m$ZOeliN^Mb_)CRRqtx?O=De5G(NG(wF)EqTS4X7Dvnwp}Dp#B^uX3Z|SN8O=rQ@5y_ z)Gl>{x=!s-*QjmkDz!yzQXAAdwMH#dr>K+EBDFxxQ*+cTHK1mwX=;ip;_v6ti)G{T zsk!lD`kc8%?EU+-BGeCm;%i@T36R?MV?WIE~ZJDmqzIydF`9N@}5@?FX?;>%HCIi~qM!EyvQJb&$a_;UJm zRzA*h)Xk5C>XY)}{x8a7uMf*}-FGR^h|kBDCsZ$YU8B!K2aVIQn~eEIDgTOVM}zB= zBfI`vF?q5L0egXL^8wrYWaVaK?+45icHTgGfrNwI`d89U(e7pOhu!7_dxLEA0XNA7 zQE-cF^8v4tCuwh!r^svMGPy&pk=My}@&>s&F8MP4OuliTDS@*25E?vQuM z>*PK1hU1usv`<&`VkMRm1#gnm2OfOz$c;**petZtExcM6KB^cT(UUcC( z-&W!U@~$ZCd2)}OBkz!HIakuLZE_$A-Xhy_fj7yvT;MJ_B?{gkiwLhfcI5(h$h)+! zk$dDed5648w&g&Oh5Ut$o=DpB(krIE54|YEMUY|4l{Kfgk&$E~GbMxhjq>g!~?)2i9uI!3y<$m`Z zt>&*?HGkDtKI7(_mA~!cO@Hb8doJC#?rhp}1RtYb9OL~k#`|E5{eO(llVj}fW9;W+ z?B8R2o*awyB*lwku^s9*b&I-5?NT?W>(mZ)joPNJQd`s})m}&BS0~q~W$F}ll3Jt| zsCjCRnxzKR3^h$nQAK3kwMX5h_NY75ZR!?vliHKe68U8T0DO=^Q$r`D)t z>J)X7TBH`Jd1{WDr3TatHBC)XMP%LWc)0Gg?ZM}u;kt8{!VMccMcK*PU*?H(YlP*PV90thjXq)`_d+ZPDSnQ(D0!zSni9e_!)z z*~T-|U;Hb6Uzy~(G0AmflKnTybz_pxgGoLQCb@1*a^0BZx-rRhW0LzGN$z(fxzCa0 z{zj7f8cFVFB)N}~jIBuxFD7Gcs_QpN?o%XVP5L*eb!v@Trn={pWNeaLq!y@oYL1$v z2Gk5SP31btjc<5Qx99xLF11J9p>9*RsGHO-b%VN2?NHaKZR#quMQu_W)H=0BEmNnc zlhh)$K+RKg)GRfiW~gauiYhXEUuj##Hii8dt{XW{4A+hBKAGh>F??Ss_s8hP;rmKE z4iDc~+Trr~(0j(=x)Dt>TsIEajdEw;{iA#Cs>I7=_xx2EzOQucF??T%b{MW3hwH|5 zxgW3&?NHaKZR#quMQu_W)H=0BEmNnclhh)$K+RKg)GRfiW~gauiYhW(H`-RQO<_NV z>&D@_(cTxc?)zEzey{Bp!|%D;W*Dv;hu?FRj&QZ_-454{Xqe%;aky@j8)Ud{>GrxC(iQy>a6>IKl}@{yLIAh z%&ik=V{V-|8w+T6>%`fZTPF^mf89EHR$8b3yRH87Z~uO)I6HZyl6Ak!Iu}^~;NMa& zo;B9x?bBynIIumyHouVlIx(zd`FonPW>T2nU(a8*SJRjq?h#*vdz*`oeCn37?)N?5 z8rfdgn*w7e=u!S&`tnbR73tjWv|@ktWWTR(!>?pqxo=9dytli2P+t4IS9yc6<;3^< zZU3p*yA;0z_=#vcJjL`c{`&X#{d)Y4$^JwZ-(Ru^p09G^0K4lm{2kLK+oL6l_Sqt@ zlDEli@(y{8+#`3$yX1B99(lvD?LN}}U2=-{O>&yNMb417$pLwXoF(_jIr1(!Pu?RJ z9J_K1f5+s$AB693vAx~<3NWvS+s^@aUHiH34S_evBDkKz-!ZxNh&5b$aGbmP@0Rxc z&fo7Fey`sjd+b7GE_mM)XYPK_IJg6xK8>WfbsUD3$dX1H=bLeQ?_1%<^koV-?>vGJ9Ah}G zon^CsV?d{iFxJd4cHX*5m~c9h{D~AkaNL0NKDwn$?_zhJi7I0Q^UXQbhQ=UfNfU}Epfpy0e8L7LyW>=|~O`CPM z&)ECJxRNrA{9f-M1zm3oW^Xb6+eYy+KU!=PU{Uy4)(3hRt*7(=qMsZ^W=$Gj( zL)UQz@NYtY+quWZ{S~&Ev_qHf+u;5kwx5Xg4%OkU@I!H32srRh(zbnvPbIcprJV~n zrCp^hn>eLirJr_j{zta!?Qq+~*dA{O@9V4ZvVBDk;9Vptbt}Lm_tSBlIAS;B zL#_qxftb`&+~{+$JXFdU!2KxnZkz?UABW0c6KKNyUYm&vC-FZ*PC+GX$uq)(BlXV# zrJlCEaYIN@+JqCRqH?;WOgHsH0+=momtcR5GFHw(#+%rPlI||tKM(hVF014(!~GE41^E9O z+_)FzzDdeGbQ10^)Mq5u!n@xkZaW|v^EX2NA41%JE|tI`5LseOz|{{rnlc@?|F@6vwy zDt3wgr?fvQ_PBf)w{B8poiygUw=?WdNuY#$xWiuuL^<*r@7MRkgnAwM8YZPthGSFN z`BLstIRczNCJr0{&O5|`Bfx3*dz|~o?;{`r!|k z-v7i$PLL6Y_D7 zd`y^U=PKux%<|%e`RU4Xb;i^yGv?XZx$1o7eAQGgG|Yv(lfYSl{J zAkx`6q_MnMnXZ;>T}q3UkCm2ImZXN&MKir{{`|sx$<~{0R{%nNv06P}UuNmO=j@EZ zKNJ@&KO zdpn{XHRGky*$cCC%d_*P^VRc9)#WU_j|I77!P4x0(r5@rP zuuTq&Rd}LD1?WC3*SRX%|H9%Tu2`u)J5yRdH#?J+MA;_3>=)`Y=rPfd8|_j|Labc$Il9&d#4Z zd*RvAVs)vy_(C;%hwB`Jt5!XVizr#ybgMS9bQ^a~q}SNH`Jf^X?swPx{giAh+ijLs z=BG=~R%Ix_tx>AX%w(e6!Me7!Wk#L_$`ekJKM z^GmjuAQ&1N9RLB~K;T>&4n50|I&M=BHd^VJP`-j@an-h|FYMArZpo;ZkwlE;**_v(l-{n1HK(*GX~o zFFV<`?Q&)5IZ1vA1M&27AXuXN&Z9axu}V{iLK&3UNS#g9-X{w)Roq*Zxl+9%_pv#* zxPW11u3DMFAZ!iOix{Zqm+FfPjTM7yy0~0AyRfh8T91tZ`M&D~)_@jt?!i-Dbsk^HY&C!KA7D%0K zPWRy^L6xqRkJx=K){UFgHUlo7v27=gs<@tmtF$chsd297;0q7;nS1b_2Xn4)uQ`bg{76mqjZStL2{)9V?`AMdUwyulP9>rI zK)-b1?0L*aGKj)-^@ov(Ydwuj7(DLzhYyrD{G>9`A0!TX$_nnp0}1LT{rKJrLiF{~f(aKzNqQ&G4D z`qTJT8X#l~N0BGT(z6ST&mGWY)^v?R;rZyh6zJ-SOL44aUtwOjdIVcgXA4J>bPk9y zF!>16wd#yqrRnO@lCN~>?DDgBFYUKTCy`-s^697ElRYp28JPFaDt-XHnr*r^J2!(4 zWN&*5!HX{jxBHRV`Cs$##||X@#{ipzo0HLda8J4sJ>s2{5mJT^J3!Kea4rI;^GFPP z=SHR+j5rJtor+{8${#TJxG9;@4xFDu^VA@dkS9thjTQ1i^T|A*LW>u|O3~fSAs%;~ z^m7GGZjzvh(*jKHaWI?3eSOqj3qI#O^bj6#js`EfZthL4@oX!(MGsa0D9*m|&5jGQ z7`f&EclwD(Pd)kmQ|35AE}6O6>FWHFY>aWQJ8%nK^AZ&2Tc5$Xi>)!B|_{-#Pd- z@&s1sSl{>8%nx9PMb_NjehO=U*>m*#9`F+(hWqdrL;POwH$wbA><7sHk&pir7<)W@ zej0A<%h)nu=`Kg?^EiJCA!OfH%IjImDSKakg7Z5j@rvx9Wt|-^cjTNse%K_svX4+C zzuP2Ulkih2e2w;^Nqi048u7NX$DhX*5VkSmYviBBmKF99;_D3mIg@x@>>D9Q`teN{ z-W3MCMf>lX#JAB7@jYj^^+SHP?PU)HhtxCil!;~T2B7SH4#3hzu*W}V%rnT>wu5J> z7sA-^pERZ+TmYk;`Ul$~@eBBq#DQ>;K< zGx0A=yD|Tf-@zrh5!|I+82gEdO)%PLllZLIS7{d(dz;)fiB;jX5KH+wxICEc4MM812@df6C4di#ux0-k*P(WIz9`s_<*H z`}t?f+57Vk+b#aHoPT-@@8_T05Tm{cltS9WABhz0oPQEIXFnwMlXjK4UClpd?uMVl zLpsvlX995A@o@eb&Ob8$4(A_tUk&Gw#ffUz?? z9^3f`_Wt}(aQ!Im=Z8rZzD&EHA6A{cKR>j|etzgMyq_P|LyY+$-gV&(kN76-etoj* z?6y8q&o3gNnjbEy`QcK4FliTWI6n;MhvED%T%Y_fuTL(?xG8&JYJPb6ui5+{>p;7= zr{;%O)co+uaDEu>UroB_jN$&(aR2IuegEne88_t}$m2M1$ok;ADHD55HdVRra^0&Y z_B!@W{d0BS&i$;uJ@4)-Nyi=q$Nhc&DYD<^uZ0-+t)5L^s6P*YxiJuD{;I(-L3GhxnGU&z#sM#r?YJI=H0({sV?Sr&k4gBJ<0JTA&5DxVYKT$35w_QncbNETv9HlCEcOoh zaTA|90bUO=>Tll@pngZhj&~&^-H`pqz?&hK@~}N^cu8-^*|BdPe z<>mUPxNkm+Fnvb(Mp0+W+&3T1gjnnWnfvDcy+cY^>^a)GZ$6q2vDgdbuG=>sErwXi zH%aEc`RG)L(Z5E^WbT{$_ZTT*++U-0XZQQ&W1hKhJ}xZnd(p&e=s)9)5M!TzycJD< ze3kZpXyS9&>>cko9{(e}*F*mr?>g>}7isj-dkr@5(e_O!>Yx0VP#kjYEbm#gZ7n>8 z-x|mvb+>%hq8V*N@xA-8E%J`zltZ_d{Da8ni^%W?kdJ+~{Xyg-a{<;0i8W}b{bg*6 zFt3-tJ~DQR{ra~-uu z$%l`$+aC=4BklIZfq$gkWZlm4MA}X6JNoZyH+g1MM?%IE?=N-ak$3_Q`tNHu%x(IJ zzYRY0kF?t(1OG^Wll#c0(}bHxT*e3QA8NPQm4Sbx-TuSCKhkdhXy6}dxAzYGBklI{ z1OI*P_D0y$5y$hCq5pVyV2uCMfxr8k7tR)wv5w(msX_R}?+*M&!sFyuL;mGZc>lzH8 zq~pg`dLPci|Mx=S>x1y-wva!)Wu0Vh4EYPo5ui-tNZ*f#))RgOjH|y7e?KnK-{va| z1wRh>@S-}Bet zE`)d+ZfSpSe;sZqkLT~eeR{z1J7$|V?dBocJWE*FANP#!QQ3RN^Bh>lN6#<9eQSt6 z3%B$MZ+{tXnRh*Z8E$#*^xTD8+QPH6SD1Gc??%}+V<>zqt?Yr~oZ^DwNyTNwb;V7^ ztBThY%l$5OWqo6Ezl2$?XPA46<^B)Z<0-`%#r|3_zj$8Ri;AZd*AzDtw-mP(cNA|Z z-c-D;xTkn8%67a9wMQbO>{-Qm#YM$aiff7+id%}?iaUxo6mKftR@_s(7v+(Z;*8>~ z;=JOb;wi;7#SO(R#cjnM#T$w@6>lr`R632ib>;a8_|%aZ&M<;+o=y;+EpJ z;*R1C#hZ$^755bHMLC&LoKc)roL5{_Jf*m%xS_bExUIOOcti1~;%&vd;LvK*D&AJyQ@j`D@s#3>;;iDl;-cay#WlqZ#Vy5c#T~^PiZ>N+EAA=Y zi}InA;*8>~;=JOb;wi;7#SO(R#cjnM#T$w@6>lrN+EAA=Yi}H0T#Tms}#d*a=#Z!uFiW`bsirb1iiZ>K*D&AJyQ@j`D z>r;v|inEIIii?V;6xYF__09E7#jA?f6t64pD&A7Oqj)#UGS!94gZGJ14ix7U7Zgi< zL+iC8HN_3ZEyZoc9mN}pHx+Ly?kV1j@(n4)8O2$}dBsJ=Q;KVf8;V8O2$}dBsJ= zQ;KVf8;VlrQZ%Qf7 zD9$R*D=sRYQe0EqP~1}7R@_m%p?FjAw&I@Ry(ni=iZhC{it~z#il-FU6gL#N6t@+3 z6mKZrRJ^UYr+6>QZ%!%BD9$R*D=sRYQe0EqP~1}7R=f@ly}x*KSMiqO9mTs*ehV<1 z-doa&1I0PT1;vw!%ZlrYn~GNzuPI(v+*Q1#ct`PWlx3+EuK$mw6$grQiVKP-6_*v) z6*m>HDqd5(uDGjsOYx54-6-Dz4A=jbwBkTbigSt!iYFD971tFv6|X8@Q@pOYt9VQCj^f=Y%Thdi{cn{H5qh6> z>oLU-DL$?E8O3voFM&h*!MDDo`16Y8eRMedYl^?F_}k#n{=%)_iSljNDVF+%!ryjG zvD7zgKLZXuuiiGJcv-R3Hyr*Y#Zup}{a=AY#@toop6@S)q@x4z?{?ya&Kl6bPzVFGOeB!h@zFciAo8ybsx#N$VdHlG* z;BTb*zp?E8kX86^?neGn-{3E^Njm%fa`3?H|L$7)=**Z2c*_Akm^HIif% z`7?C;{}7yuchH}S+gHMa^BVlAJvNLvJ~#KmdHI8}i}*v-{lEJaPEyL}{=V{o#dqd# zB%9GSVukGfuSy@spQ>A~oHfUnR?b`H^)>!albwF#k$fp{AP+dX&&h<76HfA_6Aa_@ zKJoPaA`S3ILioU72&KR-2E=xeIoajtV}pL;pBnR2^yUu4a-QwYQA)@OTx;1 zjwYO(fP`DF-`o?nhhMd4+J>EoL>n~d0rA2CY!gmMk?t>9xzEYHP9~h(soD(z$ zBi!1`Kq85& zC-epRE-sG5|8Uy>v|rF6iQBV$S2lbU!Vq$g4BWAQ2KRS~Z@&*Rh%)#RyhN4nZ~E^Q z7Q%sy`J_DO%Msv|G1}KN1-Be&#Q!_c1M*MEx&w#(9-(u(Pahu?TfxUc`EM{%87lev z?_K)%$UpJp@IN5`BTd+FBnnmrA3na=ZpX&~`F|?IC;?RR_utF(@sWT0zr+84{NK=p z4ac?WAOB+nI4J+Tjc!aCD*5|xq5NZa!vBE$Z`p$lhreu&@af~j8M^}?KHUP`q2p6+ zLI9Qg50ia-)Zcs+=K=ZO#{92Ue`TOt9hVy?v{13?gIPzQFkXe(Q~)^2YuP 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 zcmd5>U2I%O6+Yg$uI(m{oyLiQ7H*(5c5pVEq-|WcjW%i1x?oz9gepNo*VpT7d*%Jh z{sg;e>7tepi62==1PfKFsSwIT5k@LXDy75^fcg-LNK`1OeXsyQB>IpC5P2vH-#2rv z_wKaxg%^%;?svX3Xa3I2ojdEiaCq$TL`#cA(jxzo28+BR%Y6+yZOpW6Lgd2scEfsa zuNw^J4M=dZ)fivxd*0xM4(so88o!VbnTKB3V9UP=coBNJ&GIj|bs8h{qxWyoxcsX1 z-;O%(-@0|nZIAWYMXwZ0-~|x!ce)Lg+hoodr_Ytpg2?G}vx*an#}&sFM-|hG!-^@z z0Yy)-PqACET~QQonhcyicSG^I;+o<$#jA>MDXuDBR9sO!uehwZq`0VfRft~jnZs+d+BR!k`lD0+&0irtFsilTT^^M6C}y5gGRHN~rnZz--SUQ}FBJg>N{ zxTLtKcvi8lIImbzoK>7qJgzvdII5Ud99B#z4k&txeTv=FCP@ zkU3-HGH2|2lR0PO7fxzF+w6F_pE-idWm~>^i^lEHezuj2W8tKZbK9(PJD%PavkfKa z(SEjB|H4Vn#PzmVf3QWz)4$dDgB~5{Haow|fpH7pUkc~-67&KIDT8y7&gw@$^JSe!onpMY{*AyJ%VXhV-O z@}@eBr4wzmauq%nIe?#pvb{8PClu0kJ03a~@`ODZX*Rd3OG1Cbt{Tnen0Px~DBNR0 zqhHgnYK!R8$GQ()$J2Y4D9LN`I{ z&@8kEx(Y2qAzi(A#K#=18Qe`djoOAk@o_vb3GjKMPx5DfzD2 zY2f$Ot^o#)*s<9-vgMTzHiyLFkoGS6u!^U7S-q0B4y=_>U1P)OGfJhUnD#65gkY06o& zhvWTyMguwi|F(`%fA84Xu6u#;{sy!SKvRES!=K=sDe=Ceb!Ok6g{GnI9vXyi6?z>C z>Ee47?|T>c4Jek~ynno4B%zd61nvf=NvtFeMi#2{Xyj z;=afd>9k)1<47C=yl&&7Jr>n6Yw!Tdk!#`mzmrMFKia!tJP4%hgUz$SgYH*<8ur8L zpMZT3HX3dP$S58oK*|^$*z0^(jyN$7n<9}Du^4qVjg4o;uWU@$Bd|Gv--6#J!Xs?` z73a9O(E;(GpQZuvp#3x;9`tiGARhFJ9g}J20G$x__qOei$FNxkfUzZ8sEY3&JaXjV z3IFJmUped_J28IP_occ}3MC)R`(dG4&W05UPr<54ZQowR^I0oYvNMHn%3~9?2kxUA z&vkdMSeWtnkhyR{P6fGIC{yKP$nI$sF34EKU2_YFPID zYEYSzd{_;{Sefd)Ox5xw>u1Pr<4=w3k<9K=xtKBal4u~Akq(x5k9erH>j3SCq$4}+ z4eX#jXj=3u7=kGY=9xJA9dDSGPMS!!}lu-g^WKPa&H8MDLOhDA#mC2>5UYZGA$wTSLPbY2N1s0vR^b|m!Zcwv zRi+*jXtN2bDQ**rf$B&Laee5AgjqEoaH!m4t?fNvk89wYxCR18K zzIPqq;tXjmYishgY!E|FjqJnnn=Q27Lu^|i1>BA{09j>1N_HyNhy0i+rAF?@iebk! zw?dD$L6fU&wq*_b81*Ei5z?B27fYp_Fq= z%I_xsiO6x~yMUd`A`{A=2Hv$IG8^Mt!OtrHIxz9N$a&?LfIV1{73F^fwyla>RQ^|B z@2_!Bi19nX-%`$x_2w%gSC!ul-gZ^wn(`2Q``aRGG2RJ&UHKW7U&FmB#yi1pD*rLc z6Mw;a1DT&oz?S#y`g5=F9!cTdYzH`{8_N6E8_N5XN9D{F%fA4ml$1ZKe97U=72}x` z3Xwc&kGUW>mmt73@L`~ju~Il!^15>4{D{W}K?O&CX7~n^hj`IX)qgSWg#C*8Ikvbg zssEZbj>(m&}y|gjLH-g_2>Ag&EYp3ZYBX=G#>j`xCZw) z$ymAlD_)~K?Uau@e8S-+hu0mx=>5}U5CHt@b?|QQO|*B{Wovv?zwYouOzGCd{vU= zFqb@Z?C~T?;~E+LF0ogD=tqUQ^Ea;ZtlPNKYmg*!xl?)GFU$BLvwnMsekmkzf3F6U zlB_J`4Ql`EmyWSRhf@B7Vqm|8`z`EA*+l)1&#$4rb2OS3|E7N|`K8moZl`rGIkjh7Y@$*-QuFIP4Keiti dcdRd