inspektor-gadget

Форк
0
134 строки · 3.0 Кб
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 oomkillDataT struct {
16
	Fpid      uint32
17
	Fuid      uint32
18
	Fgid      uint32
19
	Tpid      uint32
20
	Pages     uint64
21
	MountNsId uint64
22
	Timestamp uint64
23
	Fcomm     [16]uint8
24
	Tcomm     [16]uint8
25
}
26

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

35
	return spec, err
36
}
37

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

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

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

64
// oomkillSpecs contains programs before they are loaded into the kernel.
65
//
66
// It can be passed ebpf.CollectionSpec.Assign.
67
type oomkillProgramSpecs struct {
68
	IgOomKill *ebpf.ProgramSpec `ebpf:"ig_oom_kill"`
69
}
70

71
// oomkillMapSpecs contains maps before they are loaded into the kernel.
72
//
73
// It can be passed ebpf.CollectionSpec.Assign.
74
type oomkillMapSpecs struct {
75
	Events               *ebpf.MapSpec `ebpf:"events"`
76
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
77
}
78

79
// oomkillObjects contains all objects after they have been loaded into the kernel.
80
//
81
// It can be passed to loadOomkillObjects or ebpf.CollectionSpec.LoadAndAssign.
82
type oomkillObjects struct {
83
	oomkillPrograms
84
	oomkillMaps
85
}
86

87
func (o *oomkillObjects) Close() error {
88
	return _OomkillClose(
89
		&o.oomkillPrograms,
90
		&o.oomkillMaps,
91
	)
92
}
93

94
// oomkillMaps contains all maps after they have been loaded into the kernel.
95
//
96
// It can be passed to loadOomkillObjects or ebpf.CollectionSpec.LoadAndAssign.
97
type oomkillMaps struct {
98
	Events               *ebpf.Map `ebpf:"events"`
99
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
100
}
101

102
func (m *oomkillMaps) Close() error {
103
	return _OomkillClose(
104
		m.Events,
105
		m.GadgetMntnsFilterMap,
106
	)
107
}
108

109
// oomkillPrograms contains all programs after they have been loaded into the kernel.
110
//
111
// It can be passed to loadOomkillObjects or ebpf.CollectionSpec.LoadAndAssign.
112
type oomkillPrograms struct {
113
	IgOomKill *ebpf.Program `ebpf:"ig_oom_kill"`
114
}
115

116
func (p *oomkillPrograms) Close() error {
117
	return _OomkillClose(
118
		p.IgOomKill,
119
	)
120
}
121

122
func _OomkillClose(closers ...io.Closer) error {
123
	for _, closer := range closers {
124
		if err := closer.Close(); err != nil {
125
			return err
126
		}
127
	}
128
	return nil
129
}
130

131
// Do not access this directly.
132
//
133
//go:embed oomkill_bpfel_x86.o
134
var _OomkillBytes []byte
135

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

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

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

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