inspektor-gadget

Форк
0
168 строк · 4.3 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64
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 opensnoopEvent struct {
16
	Timestamp uint64
17
	Pid       uint32
18
	Uid       uint32
19
	Gid       uint32
20
	_         [4]byte
21
	MntnsId   uint64
22
	Ret       int32
23
	Flags     int32
24
	Mode      uint16
25
	Comm      [16]uint8
26
	Fname     [255]uint8
27
	FullFname [4096]uint8
28
	_         [7]byte
29
}
30

31
type opensnoopPrefixKey struct {
32
	Prefixlen uint32
33
	Filename  [255]uint8
34
	_         [1]byte
35
}
36

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

45
	return spec, err
46
}
47

48
// loadOpensnoopObjects loads opensnoop and converts it into a struct.
49
//
50
// The following types are suitable as obj argument:
51
//
52
//	*opensnoopObjects
53
//	*opensnoopPrograms
54
//	*opensnoopMaps
55
//
56
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
57
func loadOpensnoopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
58
	spec, err := loadOpensnoop()
59
	if err != nil {
60
		return err
61
	}
62

63
	return spec.LoadAndAssign(obj, opts)
64
}
65

66
// opensnoopSpecs contains maps and programs before they are loaded into the kernel.
67
//
68
// It can be passed ebpf.CollectionSpec.Assign.
69
type opensnoopSpecs struct {
70
	opensnoopProgramSpecs
71
	opensnoopMapSpecs
72
}
73

74
// opensnoopSpecs contains programs before they are loaded into the kernel.
75
//
76
// It can be passed ebpf.CollectionSpec.Assign.
77
type opensnoopProgramSpecs struct {
78
	IgOpenE   *ebpf.ProgramSpec `ebpf:"ig_open_e"`
79
	IgOpenX   *ebpf.ProgramSpec `ebpf:"ig_open_x"`
80
	IgOpenatE *ebpf.ProgramSpec `ebpf:"ig_openat_e"`
81
	IgOpenatX *ebpf.ProgramSpec `ebpf:"ig_openat_x"`
82
}
83

84
// opensnoopMapSpecs contains maps before they are loaded into the kernel.
85
//
86
// It can be passed ebpf.CollectionSpec.Assign.
87
type opensnoopMapSpecs struct {
88
	Bufs                 *ebpf.MapSpec `ebpf:"bufs"`
89
	EmptyEvent           *ebpf.MapSpec `ebpf:"empty_event"`
90
	Events               *ebpf.MapSpec `ebpf:"events"`
91
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
92
	PrefixKeys           *ebpf.MapSpec `ebpf:"prefix_keys"`
93
	Prefixes             *ebpf.MapSpec `ebpf:"prefixes"`
94
	Start                *ebpf.MapSpec `ebpf:"start"`
95
}
96

97
// opensnoopObjects contains all objects after they have been loaded into the kernel.
98
//
99
// It can be passed to loadOpensnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
100
type opensnoopObjects struct {
101
	opensnoopPrograms
102
	opensnoopMaps
103
}
104

105
func (o *opensnoopObjects) Close() error {
106
	return _OpensnoopClose(
107
		&o.opensnoopPrograms,
108
		&o.opensnoopMaps,
109
	)
110
}
111

112
// opensnoopMaps contains all maps after they have been loaded into the kernel.
113
//
114
// It can be passed to loadOpensnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
115
type opensnoopMaps struct {
116
	Bufs                 *ebpf.Map `ebpf:"bufs"`
117
	EmptyEvent           *ebpf.Map `ebpf:"empty_event"`
118
	Events               *ebpf.Map `ebpf:"events"`
119
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
120
	PrefixKeys           *ebpf.Map `ebpf:"prefix_keys"`
121
	Prefixes             *ebpf.Map `ebpf:"prefixes"`
122
	Start                *ebpf.Map `ebpf:"start"`
123
}
124

125
func (m *opensnoopMaps) Close() error {
126
	return _OpensnoopClose(
127
		m.Bufs,
128
		m.EmptyEvent,
129
		m.Events,
130
		m.GadgetMntnsFilterMap,
131
		m.PrefixKeys,
132
		m.Prefixes,
133
		m.Start,
134
	)
135
}
136

137
// opensnoopPrograms contains all programs after they have been loaded into the kernel.
138
//
139
// It can be passed to loadOpensnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
140
type opensnoopPrograms struct {
141
	IgOpenE   *ebpf.Program `ebpf:"ig_open_e"`
142
	IgOpenX   *ebpf.Program `ebpf:"ig_open_x"`
143
	IgOpenatE *ebpf.Program `ebpf:"ig_openat_e"`
144
	IgOpenatX *ebpf.Program `ebpf:"ig_openat_x"`
145
}
146

147
func (p *opensnoopPrograms) Close() error {
148
	return _OpensnoopClose(
149
		p.IgOpenE,
150
		p.IgOpenX,
151
		p.IgOpenatE,
152
		p.IgOpenatX,
153
	)
154
}
155

156
func _OpensnoopClose(closers ...io.Closer) error {
157
	for _, closer := range closers {
158
		if err := closer.Close(); err != nil {
159
			return err
160
		}
161
	}
162
	return nil
163
}
164

165
// Do not access this directly.
166
//
167
//go:embed opensnoop_bpfel.o
168
var _OpensnoopBytes []byte
169

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

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

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

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