inspektor-gadget

Форк
0
/
bindsnoop_bpfel_arm64.go 
155 строк · 3.8 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build arm64
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 bindsnoopBindEvent struct {
16
	Addr       [16]uint8
17
	MountNsId  uint64
18
	Timestamp  uint64
19
	TsUs       uint64
20
	Pid        uint32
21
	BoundDevIf uint32
22
	Uid        uint32
23
	Gid        uint32
24
	Ret        int32
25
	Port       uint16
26
	Proto      uint16
27
	Opts       uint8
28
	Ver        uint8
29
	Task       [16]uint8
30
	_          [6]byte
31
}
32

33
// loadBindsnoop returns the embedded CollectionSpec for bindsnoop.
34
func loadBindsnoop() (*ebpf.CollectionSpec, error) {
35
	reader := bytes.NewReader(_BindsnoopBytes)
36
	spec, err := ebpf.LoadCollectionSpecFromReader(reader)
37
	if err != nil {
38
		return nil, fmt.Errorf("can't load bindsnoop: %w", err)
39
	}
40

41
	return spec, err
42
}
43

44
// loadBindsnoopObjects loads bindsnoop and converts it into a struct.
45
//
46
// The following types are suitable as obj argument:
47
//
48
//	*bindsnoopObjects
49
//	*bindsnoopPrograms
50
//	*bindsnoopMaps
51
//
52
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
53
func loadBindsnoopObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
54
	spec, err := loadBindsnoop()
55
	if err != nil {
56
		return err
57
	}
58

59
	return spec.LoadAndAssign(obj, opts)
60
}
61

62
// bindsnoopSpecs contains maps and programs before they are loaded into the kernel.
63
//
64
// It can be passed ebpf.CollectionSpec.Assign.
65
type bindsnoopSpecs struct {
66
	bindsnoopProgramSpecs
67
	bindsnoopMapSpecs
68
}
69

70
// bindsnoopSpecs contains programs before they are loaded into the kernel.
71
//
72
// It can be passed ebpf.CollectionSpec.Assign.
73
type bindsnoopProgramSpecs struct {
74
	IgBindIpv4E *ebpf.ProgramSpec `ebpf:"ig_bind_ipv4_e"`
75
	IgBindIpv4X *ebpf.ProgramSpec `ebpf:"ig_bind_ipv4_x"`
76
	IgBindIpv6E *ebpf.ProgramSpec `ebpf:"ig_bind_ipv6_e"`
77
	IgBindIpv6X *ebpf.ProgramSpec `ebpf:"ig_bind_ipv6_x"`
78
}
79

80
// bindsnoopMapSpecs contains maps before they are loaded into the kernel.
81
//
82
// It can be passed ebpf.CollectionSpec.Assign.
83
type bindsnoopMapSpecs struct {
84
	Events               *ebpf.MapSpec `ebpf:"events"`
85
	GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"`
86
	Ports                *ebpf.MapSpec `ebpf:"ports"`
87
	Sockets              *ebpf.MapSpec `ebpf:"sockets"`
88
}
89

90
// bindsnoopObjects contains all objects after they have been loaded into the kernel.
91
//
92
// It can be passed to loadBindsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
93
type bindsnoopObjects struct {
94
	bindsnoopPrograms
95
	bindsnoopMaps
96
}
97

98
func (o *bindsnoopObjects) Close() error {
99
	return _BindsnoopClose(
100
		&o.bindsnoopPrograms,
101
		&o.bindsnoopMaps,
102
	)
103
}
104

105
// bindsnoopMaps contains all maps after they have been loaded into the kernel.
106
//
107
// It can be passed to loadBindsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
108
type bindsnoopMaps struct {
109
	Events               *ebpf.Map `ebpf:"events"`
110
	GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"`
111
	Ports                *ebpf.Map `ebpf:"ports"`
112
	Sockets              *ebpf.Map `ebpf:"sockets"`
113
}
114

115
func (m *bindsnoopMaps) Close() error {
116
	return _BindsnoopClose(
117
		m.Events,
118
		m.GadgetMntnsFilterMap,
119
		m.Ports,
120
		m.Sockets,
121
	)
122
}
123

124
// bindsnoopPrograms contains all programs after they have been loaded into the kernel.
125
//
126
// It can be passed to loadBindsnoopObjects or ebpf.CollectionSpec.LoadAndAssign.
127
type bindsnoopPrograms struct {
128
	IgBindIpv4E *ebpf.Program `ebpf:"ig_bind_ipv4_e"`
129
	IgBindIpv4X *ebpf.Program `ebpf:"ig_bind_ipv4_x"`
130
	IgBindIpv6E *ebpf.Program `ebpf:"ig_bind_ipv6_e"`
131
	IgBindIpv6X *ebpf.Program `ebpf:"ig_bind_ipv6_x"`
132
}
133

134
func (p *bindsnoopPrograms) Close() error {
135
	return _BindsnoopClose(
136
		p.IgBindIpv4E,
137
		p.IgBindIpv4X,
138
		p.IgBindIpv6E,
139
		p.IgBindIpv6X,
140
	)
141
}
142

143
func _BindsnoopClose(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 bindsnoop_bpfel_arm64.o
155
var _BindsnoopBytes []byte
156

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

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

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

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