inspektor-gadget

Форк
0
/
processcollector_bpfel.go 
130 строк · 3.4 Кб
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 processCollectorProcessEntry struct {
16
	Tgid      uint32
17
	Pid       uint32
18
	ParentPid uint32
19
	Uid       uint32
20
	Gid       uint32
21
	_         [4]byte
22
	MntnsId   uint64
23
	Comm      [16]uint8
24
}
25

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

34
	return spec, err
35
}
36

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

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

55
// processCollectorSpecs contains maps and programs before they are loaded into the kernel.
56
//
57
// It can be passed ebpf.CollectionSpec.Assign.
58
type processCollectorSpecs struct {
59
	processCollectorProgramSpecs
60
	processCollectorMapSpecs
61
}
62

63
// processCollectorSpecs contains programs before they are loaded into the kernel.
64
//
65
// It can be passed ebpf.CollectionSpec.Assign.
66
type processCollectorProgramSpecs struct {
67
	IgSnapProc *ebpf.ProgramSpec `ebpf:"ig_snap_proc"`
68
}
69

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

77
// processCollectorObjects contains all objects after they have been loaded into the kernel.
78
//
79
// It can be passed to loadProcessCollectorObjects or ebpf.CollectionSpec.LoadAndAssign.
80
type processCollectorObjects struct {
81
	processCollectorPrograms
82
	processCollectorMaps
83
}
84

85
func (o *processCollectorObjects) Close() error {
86
	return _ProcessCollectorClose(
87
		&o.processCollectorPrograms,
88
		&o.processCollectorMaps,
89
	)
90
}
91

92
// processCollectorMaps contains all maps after they have been loaded into the kernel.
93
//
94
// It can be passed to loadProcessCollectorObjects or ebpf.CollectionSpec.LoadAndAssign.
95
type processCollectorMaps struct {
96
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
97
}
98

99
func (m *processCollectorMaps) Close() error {
100
	return _ProcessCollectorClose(
101
		m.GadgetMntnsFilterMap,
102
	)
103
}
104

105
// processCollectorPrograms contains all programs after they have been loaded into the kernel.
106
//
107
// It can be passed to loadProcessCollectorObjects or ebpf.CollectionSpec.LoadAndAssign.
108
type processCollectorPrograms struct {
109
	IgSnapProc *ebpf.Program `ebpf:"ig_snap_proc"`
110
}
111

112
func (p *processCollectorPrograms) Close() error {
113
	return _ProcessCollectorClose(
114
		p.IgSnapProc,
115
	)
116
}
117

118
func _ProcessCollectorClose(closers ...io.Closer) error {
119
	for _, closer := range closers {
120
		if err := closer.Close(); err != nil {
121
			return err
122
		}
123
	}
124
	return nil
125
}
126

127
// Do not access this directly.
128
//
129
//go:embed processcollector_bpfel.o
130
var _ProcessCollectorBytes []byte
131

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

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

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

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