inspektor-gadget
159 строк · 4.1 Кб
1// Code generated by bpf2go; DO NOT EDIT.
2//go:build 386 || amd64
3
4package tracer
5
6import (
7"bytes"
8_ "embed"
9"fmt"
10"io"
11
12"github.com/cilium/ebpf"
13)
14
15type traceloopSyscallEventContT struct {
16Param [128]uint8
17MonotonicTimestamp uint64
18Length uint64
19Index uint8
20Failed uint8
21_ [6]byte
22}
23
24type traceloopSyscallEventT struct {
25Args [6]uint64
26MonotonicTimestamp uint64
27BootTimestamp uint64
28Pid uint32
29Cpu uint16
30Id uint16
31Comm [16]uint8
32ContNr uint8
33Typ uint8
34_ [6]byte
35}
36
37// loadTraceloop returns the embedded CollectionSpec for traceloop.
38func loadTraceloop() (*ebpf.CollectionSpec, error) {
39reader := bytes.NewReader(_TraceloopBytes)
40spec, err := ebpf.LoadCollectionSpecFromReader(reader)
41if err != nil {
42return nil, fmt.Errorf("can't load traceloop: %w", err)
43}
44
45return spec, err
46}
47
48// loadTraceloopObjects loads traceloop and converts it into a struct.
49//
50// The following types are suitable as obj argument:
51//
52// *traceloopObjects
53// *traceloopPrograms
54// *traceloopMaps
55//
56// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
57func loadTraceloopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
58spec, err := loadTraceloop()
59if err != nil {
60return err
61}
62
63return spec.LoadAndAssign(obj, opts)
64}
65
66// traceloopSpecs contains maps and programs before they are loaded into the kernel.
67//
68// It can be passed ebpf.CollectionSpec.Assign.
69type traceloopSpecs struct {
70traceloopProgramSpecs
71traceloopMapSpecs
72}
73
74// traceloopSpecs contains programs before they are loaded into the kernel.
75//
76// It can be passed ebpf.CollectionSpec.Assign.
77type traceloopProgramSpecs struct {
78IgTraceloopE *ebpf.ProgramSpec `ebpf:"ig_traceloop_e"`
79IgTraceloopX *ebpf.ProgramSpec `ebpf:"ig_traceloop_x"`
80}
81
82// traceloopMapSpecs contains maps before they are loaded into the kernel.
83//
84// It can be passed ebpf.CollectionSpec.Assign.
85type traceloopMapSpecs struct {
86GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
87MapOfPerfBuffers *ebpf.MapSpec `ebpf:"map_of_perf_buffers"`
88ProbeAtSysExit *ebpf.MapSpec `ebpf:"probe_at_sys_exit"`
89RegsMap *ebpf.MapSpec `ebpf:"regs_map"`
90SyscallFilters *ebpf.MapSpec `ebpf:"syscall_filters"`
91Syscalls *ebpf.MapSpec `ebpf:"syscalls"`
92}
93
94// traceloopObjects contains all objects after they have been loaded into the kernel.
95//
96// It can be passed to loadTraceloopObjects or ebpf.CollectionSpec.LoadAndAssign.
97type traceloopObjects struct {
98traceloopPrograms
99traceloopMaps
100}
101
102func (o *traceloopObjects) Close() error {
103return _TraceloopClose(
104&o.traceloopPrograms,
105&o.traceloopMaps,
106)
107}
108
109// traceloopMaps contains all maps after they have been loaded into the kernel.
110//
111// It can be passed to loadTraceloopObjects or ebpf.CollectionSpec.LoadAndAssign.
112type traceloopMaps struct {
113GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
114MapOfPerfBuffers *ebpf.Map `ebpf:"map_of_perf_buffers"`
115ProbeAtSysExit *ebpf.Map `ebpf:"probe_at_sys_exit"`
116RegsMap *ebpf.Map `ebpf:"regs_map"`
117SyscallFilters *ebpf.Map `ebpf:"syscall_filters"`
118Syscalls *ebpf.Map `ebpf:"syscalls"`
119}
120
121func (m *traceloopMaps) Close() error {
122return _TraceloopClose(
123m.GadgetMntnsFilterMap,
124m.MapOfPerfBuffers,
125m.ProbeAtSysExit,
126m.RegsMap,
127m.SyscallFilters,
128m.Syscalls,
129)
130}
131
132// traceloopPrograms contains all programs after they have been loaded into the kernel.
133//
134// It can be passed to loadTraceloopObjects or ebpf.CollectionSpec.LoadAndAssign.
135type traceloopPrograms struct {
136IgTraceloopE *ebpf.Program `ebpf:"ig_traceloop_e"`
137IgTraceloopX *ebpf.Program `ebpf:"ig_traceloop_x"`
138}
139
140func (p *traceloopPrograms) Close() error {
141return _TraceloopClose(
142p.IgTraceloopE,
143p.IgTraceloopX,
144)
145}
146
147func _TraceloopClose(closers ...io.Closer) error {
148for _, closer := range closers {
149if err := closer.Close(); err != nil {
150return err
151}
152}
153return nil
154}
155
156// Do not access this directly.
157//
158//go:embed traceloop_bpfel_x86.o
159var _TraceloopBytes []byte
160