inspektor-gadget

Форк
0
155 строк · 4.1 Кб
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 sigsnoopEvent struct {
16
	Pid       uint32
17
	Tpid      uint32
18
	MntnsId   uint64
19
	Timestamp uint64
20
	Uid       uint32
21
	Gid       uint32
22
	Sig       int32
23
	Ret       int32
24
	Comm      [16]uint8
25
}
26

27
// loadSigsnoop returns the embedded CollectionSpec for sigsnoop.
28
func loadSigsnoop() (*ebpf.CollectionSpec, error) {
29
	reader := bytes.NewReader(_SigsnoopBytes)
30
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
31
	if err != nil {
32
		return nil, fmt.Errorf("can't load sigsnoop: %w", err)
33
	}
34

35
	return spec, err
36
}
37

38
// loadSigsnoopObjects loads sigsnoop and converts it into a struct.
39
//
40
// The following types are suitable as obj argument:
41
//
42
//	*sigsnoopObjects
43
//	*sigsnoopPrograms
44
//	*sigsnoopMaps
45
//
46
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
47
func loadSigsnoopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
48
	spec, err := loadSigsnoop()
49
	if err != nil {
50
		return err
51
	}
52

53
	return spec.LoadAndAssign(obj, opts)
54
}
55

56
// sigsnoopSpecs contains maps and programs before they are loaded into the kernel.
57
//
58
// It can be passed ebpf.CollectionSpec.Assign.
59
type sigsnoopSpecs struct {
60
	sigsnoopProgramSpecs
61
	sigsnoopMapSpecs
62
}
63

64
// sigsnoopSpecs contains programs before they are loaded into the kernel.
65
//
66
// It can be passed ebpf.CollectionSpec.Assign.
67
type sigsnoopProgramSpecs struct {
68
	IgSigGenerate *ebpf.ProgramSpec `ebpf:"ig_sig_generate"`
69
	IgSigKillE    *ebpf.ProgramSpec `ebpf:"ig_sig_kill_e"`
70
	IgSigKillX    *ebpf.ProgramSpec `ebpf:"ig_sig_kill_x"`
71
	IgSigTgkillE  *ebpf.ProgramSpec `ebpf:"ig_sig_tgkill_e"`
72
	IgSigTgkillX  *ebpf.ProgramSpec `ebpf:"ig_sig_tgkill_x"`
73
	IgSigTkillE   *ebpf.ProgramSpec `ebpf:"ig_sig_tkill_e"`
74
	IgSigTkillX   *ebpf.ProgramSpec `ebpf:"ig_sig_tkill_x"`
75
}
76

77
// sigsnoopMapSpecs contains maps before they are loaded into the kernel.
78
//
79
// It can be passed ebpf.CollectionSpec.Assign.
80
type sigsnoopMapSpecs struct {
81
	Events               *ebpf.MapSpec `ebpf:"events"`
82
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
83
	Values               *ebpf.MapSpec `ebpf:"values"`
84
}
85

86
// sigsnoopObjects contains all objects after they have been loaded into the kernel.
87
//
88
// It can be passed to loadSigsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
89
type sigsnoopObjects struct {
90
	sigsnoopPrograms
91
	sigsnoopMaps
92
}
93

94
func (o *sigsnoopObjects) Close() error {
95
	return _SigsnoopClose(
96
		&o.sigsnoopPrograms,
97
		&o.sigsnoopMaps,
98
	)
99
}
100

101
// sigsnoopMaps contains all maps after they have been loaded into the kernel.
102
//
103
// It can be passed to loadSigsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
104
type sigsnoopMaps struct {
105
	Events               *ebpf.Map `ebpf:"events"`
106
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
107
	Values               *ebpf.Map `ebpf:"values"`
108
}
109

110
func (m *sigsnoopMaps) Close() error {
111
	return _SigsnoopClose(
112
		m.Events,
113
		m.GadgetMntnsFilterMap,
114
		m.Values,
115
	)
116
}
117

118
// sigsnoopPrograms contains all programs after they have been loaded into the kernel.
119
//
120
// It can be passed to loadSigsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
121
type sigsnoopPrograms struct {
122
	IgSigGenerate *ebpf.Program `ebpf:"ig_sig_generate"`
123
	IgSigKillE    *ebpf.Program `ebpf:"ig_sig_kill_e"`
124
	IgSigKillX    *ebpf.Program `ebpf:"ig_sig_kill_x"`
125
	IgSigTgkillE  *ebpf.Program `ebpf:"ig_sig_tgkill_e"`
126
	IgSigTgkillX  *ebpf.Program `ebpf:"ig_sig_tgkill_x"`
127
	IgSigTkillE   *ebpf.Program `ebpf:"ig_sig_tkill_e"`
128
	IgSigTkillX   *ebpf.Program `ebpf:"ig_sig_tkill_x"`
129
}
130

131
func (p *sigsnoopPrograms) Close() error {
132
	return _SigsnoopClose(
133
		p.IgSigGenerate,
134
		p.IgSigKillE,
135
		p.IgSigKillX,
136
		p.IgSigTgkillE,
137
		p.IgSigTgkillX,
138
		p.IgSigTkillE,
139
		p.IgSigTkillX,
140
	)
141
}
142

143
func _SigsnoopClose(closers ...io.Closer) error {
144
	for _, closer := range closers {
145
		if err := closer.Close(); err != nil {
146
			return err
147
		}
148
	}
149
	return nil
150
}
151

152
// Do not access this directly.
153
//
154
//go:embed sigsnoop_bpfel.o
155
var _SigsnoopBytes []byte
156

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

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

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

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