inspektor-gadget

Форк
0
/
traceloop_bpfel_x86.go 
159 строк · 4.1 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build 386 || amd64
3

4
package tracer
5

6
import (
7
	"bytes"
8
	_ "embed"
9
	"fmt"
10
	"io"
11

12
	"github.com/cilium/ebpf"
13
)
14

15
type traceloopSyscallEventContT struct {
16
	Param              [128]uint8
17
	MonotonicTimestamp uint64
18
	Length             uint64
19
	Index              uint8
20
	Failed             uint8
21
	_                  [6]byte
22
}
23

24
type traceloopSyscallEventT struct {
25
	Args               [6]uint64
26
	MonotonicTimestamp uint64
27
	BootTimestamp      uint64
28
	Pid                uint32
29
	Cpu                uint16
30
	Id                 uint16
31
	Comm               [16]uint8
32
	ContNr             uint8
33
	Typ                uint8
34
	_                  [6]byte
35
}
36

37
// loadTraceloop returns the embedded CollectionSpec for traceloop.
38
func loadTraceloop() (*ebpf.CollectionSpec, error) {
39
	reader := bytes.NewReader(_TraceloopBytes)
40
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
41
	if err != nil {
42
		return nil, fmt.Errorf("can't load traceloop: %w", err)
43
	}
44

45
	return 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.
57
func loadTraceloopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
58
	spec, err := loadTraceloop()
59
	if err != nil {
60
		return err
61
	}
62

63
	return 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.
69
type traceloopSpecs struct {
70
	traceloopProgramSpecs
71
	traceloopMapSpecs
72
}
73

74
// traceloopSpecs contains programs before they are loaded into the kernel.
75
//
76
// It can be passed ebpf.CollectionSpec.Assign.
77
type traceloopProgramSpecs struct {
78
	IgTraceloopE *ebpf.ProgramSpec `ebpf:"ig_traceloop_e"`
79
	IgTraceloopX *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.
85
type traceloopMapSpecs struct {
86
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
87
	MapOfPerfBuffers     *ebpf.MapSpec `ebpf:"map_of_perf_buffers"`
88
	ProbeAtSysExit       *ebpf.MapSpec `ebpf:"probe_at_sys_exit"`
89
	RegsMap              *ebpf.MapSpec `ebpf:"regs_map"`
90
	SyscallFilters       *ebpf.MapSpec `ebpf:"syscall_filters"`
91
	Syscalls             *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.
97
type traceloopObjects struct {
98
	traceloopPrograms
99
	traceloopMaps
100
}
101

102
func (o *traceloopObjects) Close() error {
103
	return _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.
112
type traceloopMaps struct {
113
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
114
	MapOfPerfBuffers     *ebpf.Map `ebpf:"map_of_perf_buffers"`
115
	ProbeAtSysExit       *ebpf.Map `ebpf:"probe_at_sys_exit"`
116
	RegsMap              *ebpf.Map `ebpf:"regs_map"`
117
	SyscallFilters       *ebpf.Map `ebpf:"syscall_filters"`
118
	Syscalls             *ebpf.Map `ebpf:"syscalls"`
119
}
120

121
func (m *traceloopMaps) Close() error {
122
	return _TraceloopClose(
123
		m.GadgetMntnsFilterMap,
124
		m.MapOfPerfBuffers,
125
		m.ProbeAtSysExit,
126
		m.RegsMap,
127
		m.SyscallFilters,
128
		m.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.
135
type traceloopPrograms struct {
136
	IgTraceloopE *ebpf.Program `ebpf:"ig_traceloop_e"`
137
	IgTraceloopX *ebpf.Program `ebpf:"ig_traceloop_x"`
138
}
139

140
func (p *traceloopPrograms) Close() error {
141
	return _TraceloopClose(
142
		p.IgTraceloopE,
143
		p.IgTraceloopX,
144
	)
145
}
146

147
func _TraceloopClose(closers ...io.Closer) error {
148
	for _, closer := range closers {
149
		if err := closer.Close(); err != nil {
150
			return err
151
		}
152
	}
153
	return nil
154
}
155

156
// Do not access this directly.
157
//
158
//go:embed traceloop_bpfel_x86.o
159
var _TraceloopBytes []byte
160

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.