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 000000000..45c82786e Binary files /dev/null and b/internal/ebpf/bpf/clone_bpfeb.o differ 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 000000000..e81f9adbd Binary files /dev/null and b/internal/ebpf/bpf/clone_bpfel.o differ 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 000000000..fc3dd7f59 Binary files /dev/null and b/internal/ebpf/bpf/ctl_bpfeb.o differ 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 000000000..3f289f500 Binary files /dev/null and b/internal/ebpf/bpf/ctl_bpfel.o differ 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 000000000..7b84f35fa Binary files /dev/null and b/internal/ebpf/bpf/execve_bpfeb.o differ 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 000000000..265b9cc7e Binary files /dev/null and b/internal/ebpf/bpf/execve_bpfel.o differ diff --git a/internal/ebpf/exit_bpfeb.go b/internal/ebpf/bpf/exit_bpfeb.go similarity index 57% rename from internal/ebpf/exit_bpfeb.go rename to internal/ebpf/bpf/exit_bpfeb.go index cb7458b1f..48d5ce17b 100644 --- a/internal/ebpf/exit_bpfeb.go +++ b/internal/ebpf/bpf/exit_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 exitScratchValue struct { +type ExitScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type exitScratchValue struct { Aux [256]uint8 } -// loadExit returns the embedded CollectionSpec for exit. -func loadExit() (*ebpf.CollectionSpec, error) { +// LoadExit returns the embedded CollectionSpec for Exit. +func LoadExit() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ExitBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load exit: %w", err) + return nil, fmt.Errorf("can't load Exit: %w", err) } return spec, err } -// loadExitObjects loads exit and converts it into a struct. +// LoadExitObjects loads Exit and converts it into a struct. // // The following types are suitable as obj argument: // -// *exitObjects -// *exitPrograms -// *exitMaps +// *ExitObjects +// *ExitPrograms +// *ExitMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadExit() +func LoadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadExit() if err != nil { return err } @@ -55,26 +55,26 @@ func loadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// exitSpecs contains maps and programs before they are loaded into the kernel. +// ExitSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitSpecs struct { - exitProgramSpecs - exitMapSpecs - exitVariableSpecs +type ExitSpecs struct { + ExitProgramSpecs + ExitMapSpecs + ExitVariableSpecs } -// exitProgramSpecs contains programs before they are loaded into the kernel. +// ExitProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitProgramSpecs struct { +type ExitProgramSpecs struct { HandleSchedProcessExit *ebpf.ProgramSpec `ebpf:"handle_sched_process_exit"` } -// exitMapSpecs contains maps before they are loaded into the kernel. +// ExitMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitMapSpecs struct { +type ExitMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type exitMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// exitVariableSpecs contains global variables before they are loaded into the kernel. +// ExitVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitVariableSpecs struct { +type ExitVariableSpecs struct { } -// exitObjects contains all objects after they have been loaded into the kernel. +// ExitObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitObjects struct { - exitPrograms - exitMaps - exitVariables +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitObjects struct { + ExitPrograms + ExitMaps + ExitVariables } -func (o *exitObjects) Close() error { +func (o *ExitObjects) Close() error { return _ExitClose( - &o.exitPrograms, - &o.exitMaps, + &o.ExitPrograms, + &o.ExitMaps, ) } -// exitMaps contains all maps after they have been loaded into the kernel. +// ExitMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitMaps struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type exitMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *exitMaps) Close() error { +func (m *ExitMaps) Close() error { return _ExitClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *exitMaps) Close() error { ) } -// exitVariables contains all global variables after they have been loaded into the kernel. +// ExitVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitVariables struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitVariables struct { } -// exitPrograms contains all programs after they have been loaded into the kernel. +// ExitPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitPrograms struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitPrograms struct { HandleSchedProcessExit *ebpf.Program `ebpf:"handle_sched_process_exit"` } -func (p *exitPrograms) Close() error { +func (p *ExitPrograms) Close() error { return _ExitClose( p.HandleSchedProcessExit, ) diff --git a/internal/ebpf/bpf/exit_bpfeb.o b/internal/ebpf/bpf/exit_bpfeb.o new file mode 100644 index 000000000..d19e5fc03 Binary files /dev/null and b/internal/ebpf/bpf/exit_bpfeb.o differ diff --git a/internal/ebpf/exit_bpfel.go b/internal/ebpf/bpf/exit_bpfel.go similarity index 57% rename from internal/ebpf/exit_bpfel.go rename to internal/ebpf/bpf/exit_bpfel.go index af3511b69..146c15056 100644 --- a/internal/ebpf/exit_bpfel.go +++ b/internal/ebpf/bpf/exit_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 exitScratchValue struct { +type ExitScratchValue struct { _ structs.HostLayout Arg0 uint64 Arg1 uint64 @@ -26,28 +26,28 @@ type exitScratchValue struct { Aux [256]uint8 } -// loadExit returns the embedded CollectionSpec for exit. -func loadExit() (*ebpf.CollectionSpec, error) { +// LoadExit returns the embedded CollectionSpec for Exit. +func LoadExit() (*ebpf.CollectionSpec, error) { reader := bytes.NewReader(_ExitBytes) spec, err := ebpf.LoadCollectionSpecFromReader(reader) if err != nil { - return nil, fmt.Errorf("can't load exit: %w", err) + return nil, fmt.Errorf("can't load Exit: %w", err) } return spec, err } -// loadExitObjects loads exit and converts it into a struct. +// LoadExitObjects loads Exit and converts it into a struct. // // The following types are suitable as obj argument: // -// *exitObjects -// *exitPrograms -// *exitMaps +// *ExitObjects +// *ExitPrograms +// *ExitMaps // // See ebpf.CollectionSpec.LoadAndAssign documentation for details. -func loadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { - spec, err := loadExit() +func LoadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { + spec, err := LoadExit() if err != nil { return err } @@ -55,26 +55,26 @@ func loadExitObjects(obj interface{}, opts *ebpf.CollectionOptions) error { return spec.LoadAndAssign(obj, opts) } -// exitSpecs contains maps and programs before they are loaded into the kernel. +// ExitSpecs contains maps and programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitSpecs struct { - exitProgramSpecs - exitMapSpecs - exitVariableSpecs +type ExitSpecs struct { + ExitProgramSpecs + ExitMapSpecs + ExitVariableSpecs } -// exitProgramSpecs contains programs before they are loaded into the kernel. +// ExitProgramSpecs contains programs before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitProgramSpecs struct { +type ExitProgramSpecs struct { HandleSchedProcessExit *ebpf.ProgramSpec `ebpf:"handle_sched_process_exit"` } -// exitMapSpecs contains maps before they are loaded into the kernel. +// ExitMapSpecs contains maps before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitMapSpecs struct { +type ExitMapSpecs struct { DropCount *ebpf.MapSpec `ebpf:"drop_count"` Enabled *ebpf.MapSpec `ebpf:"enabled"` Events *ebpf.MapSpec `ebpf:"events"` @@ -82,32 +82,32 @@ type exitMapSpecs struct { ScratchHeap *ebpf.MapSpec `ebpf:"scratch_heap"` } -// exitVariableSpecs contains global variables before they are loaded into the kernel. +// ExitVariableSpecs contains global variables before they are loaded into the kernel. // // It can be passed ebpf.CollectionSpec.Assign. -type exitVariableSpecs struct { +type ExitVariableSpecs struct { } -// exitObjects contains all objects after they have been loaded into the kernel. +// ExitObjects contains all objects after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitObjects struct { - exitPrograms - exitMaps - exitVariables +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitObjects struct { + ExitPrograms + ExitMaps + ExitVariables } -func (o *exitObjects) Close() error { +func (o *ExitObjects) Close() error { return _ExitClose( - &o.exitPrograms, - &o.exitMaps, + &o.ExitPrograms, + &o.ExitMaps, ) } -// exitMaps contains all maps after they have been loaded into the kernel. +// ExitMaps contains all maps after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitMaps struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitMaps struct { DropCount *ebpf.Map `ebpf:"drop_count"` Enabled *ebpf.Map `ebpf:"enabled"` Events *ebpf.Map `ebpf:"events"` @@ -115,7 +115,7 @@ type exitMaps struct { ScratchHeap *ebpf.Map `ebpf:"scratch_heap"` } -func (m *exitMaps) Close() error { +func (m *ExitMaps) Close() error { return _ExitClose( m.DropCount, m.Enabled, @@ -125,20 +125,20 @@ func (m *exitMaps) Close() error { ) } -// exitVariables contains all global variables after they have been loaded into the kernel. +// ExitVariables contains all global variables after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitVariables struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitVariables struct { } -// exitPrograms contains all programs after they have been loaded into the kernel. +// ExitPrograms contains all programs after they have been loaded into the kernel. // -// It can be passed to loadExitObjects or ebpf.CollectionSpec.LoadAndAssign. -type exitPrograms struct { +// It can be passed to LoadExitObjects or ebpf.CollectionSpec.LoadAndAssign. +type ExitPrograms struct { HandleSchedProcessExit *ebpf.Program `ebpf:"handle_sched_process_exit"` } -func (p *exitPrograms) Close() error { +func (p *ExitPrograms) Close() error { return _ExitClose( p.HandleSchedProcessExit, ) diff --git a/internal/ebpf/bpf/exit_bpfel.o b/internal/ebpf/bpf/exit_bpfel.o new file mode 100644 index 000000000..88d910d01 Binary files /dev/null and b/internal/ebpf/bpf/exit_bpfel.o differ 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 000000000..6cba12704 Binary files /dev/null and b/internal/ebpf/bpf/file_bpfeb.o differ 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 000000000..86647ff9b Binary files /dev/null and b/internal/ebpf/bpf/file_bpfel.o differ 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 000000000..d27b2efd8 Binary files /dev/null and b/internal/ebpf/bpf/mem_bpfeb.o differ 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 000000000..4af65725d Binary files /dev/null and b/internal/ebpf/bpf/mem_bpfel.o differ diff --git a/internal/ebpf/net_bpfeb.go b/internal/ebpf/bpf/net_bpfeb.go similarity index 65% rename from internal/ebpf/net_bpfeb.go rename to internal/ebpf/bpf/net_bpfeb.go index e5dec87cb..6f3c05914 100644 --- a/internal/ebpf/net_bpfeb.go +++ b/internal/ebpf/bpf/net_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 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_bpfeb.o b/internal/ebpf/bpf/net_bpfeb.o new file mode 100644 index 000000000..e243bbb79 Binary files /dev/null and b/internal/ebpf/bpf/net_bpfeb.o differ 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 000000000..e7502ebb5 Binary files /dev/null and b/internal/ebpf/bpf/net_bpfel.o differ 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 000000000..f90905f15 Binary files /dev/null and b/internal/ebpf/bpf/prociter_bpfeb.o differ 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 000000000..9a541ebfb Binary files /dev/null and b/internal/ebpf/bpf/prociter_bpfel.o differ 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 091806274..000000000 Binary files a/internal/ebpf/clone_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/clone_bpfel.o b/internal/ebpf/clone_bpfel.o deleted file mode 100644 index c84804e21..000000000 Binary files a/internal/ebpf/clone_bpfel.o and /dev/null differ diff --git a/internal/ebpf/ctl_bpfeb.o b/internal/ebpf/ctl_bpfeb.o deleted file mode 100644 index effa49e87..000000000 Binary files a/internal/ebpf/ctl_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/ctl_bpfel.o b/internal/ebpf/ctl_bpfel.o deleted file mode 100644 index 21888bdd0..000000000 Binary files a/internal/ebpf/ctl_bpfel.o and /dev/null differ diff --git a/internal/ebpf/execve_bpfeb.o b/internal/ebpf/execve_bpfeb.o deleted file mode 100644 index 87913ab3c..000000000 Binary files a/internal/ebpf/execve_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/execve_bpfel.o b/internal/ebpf/execve_bpfel.o deleted file mode 100644 index d1daca305..000000000 Binary files a/internal/ebpf/execve_bpfel.o and /dev/null differ diff --git a/internal/ebpf/exit_bpfeb.o b/internal/ebpf/exit_bpfeb.o deleted file mode 100644 index 0a2fc972b..000000000 Binary files a/internal/ebpf/exit_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/exit_bpfel.o b/internal/ebpf/exit_bpfel.o deleted file mode 100644 index 8ca470c6d..000000000 Binary files a/internal/ebpf/exit_bpfel.o and /dev/null differ diff --git a/internal/ebpf/file_bpfeb.o b/internal/ebpf/file_bpfeb.o deleted file mode 100644 index 1c46e1106..000000000 Binary files a/internal/ebpf/file_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/file_bpfel.o b/internal/ebpf/file_bpfel.o deleted file mode 100644 index 80c6638f1..000000000 Binary files a/internal/ebpf/file_bpfel.o and /dev/null differ 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 11508e9f1..000000000 Binary files a/internal/ebpf/mem_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/mem_bpfel.o b/internal/ebpf/mem_bpfel.o deleted file mode 100644 index 486ecb389..000000000 Binary files a/internal/ebpf/mem_bpfel.o and /dev/null differ diff --git a/internal/ebpf/net_bpfeb.o b/internal/ebpf/net_bpfeb.o deleted file mode 100644 index a97ce48a0..000000000 Binary files a/internal/ebpf/net_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/net_bpfel.o b/internal/ebpf/net_bpfel.o deleted file mode 100644 index ca639ddaf..000000000 Binary files a/internal/ebpf/net_bpfel.o and /dev/null differ diff --git a/internal/ebpf/prociter_bpfeb.o b/internal/ebpf/prociter_bpfeb.o deleted file mode 100644 index 605d00f7e..000000000 Binary files a/internal/ebpf/prociter_bpfeb.o and /dev/null differ diff --git a/internal/ebpf/prociter_bpfel.o b/internal/ebpf/prociter_bpfel.o deleted file mode 100644 index 175940972..000000000 Binary files a/internal/ebpf/prociter_bpfel.o and /dev/null differ