inspektor-gadget

Форк
0
130 строк · 2.9 Кб
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 socketEntry struct {
16
	Daddr  [16]uint8
17
	Saddr  [16]uint8
18
	Dport  uint16
19
	Sport  uint16
20
	Proto  uint16
21
	Family uint16
22
	State  uint8
23
	_      [7]byte
24
	Inode  uint64
25
}
26

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

35
	return spec, err
36
}
37

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

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

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

64
// socketSpecs contains programs before they are loaded into the kernel.
65
//
66
// It can be passed ebpf.CollectionSpec.Assign.
67
type socketProgramSpecs struct {
68
	IgSnapTcp *ebpf.ProgramSpec `ebpf:"ig_snap_tcp"`
69
	IgSnapUdp *ebpf.ProgramSpec `ebpf:"ig_snap_udp"`
70
}
71

72
// socketMapSpecs contains maps before they are loaded into the kernel.
73
//
74
// It can be passed ebpf.CollectionSpec.Assign.
75
type socketMapSpecs struct {
76
}
77

78
// socketObjects contains all objects after they have been loaded into the kernel.
79
//
80
// It can be passed to loadSocketObjects or ebpf.CollectionSpec.LoadAndAssign.
81
type socketObjects struct {
82
	socketPrograms
83
	socketMaps
84
}
85

86
func (o *socketObjects) Close() error {
87
	return _SocketClose(
88
		&o.socketPrograms,
89
		&o.socketMaps,
90
	)
91
}
92

93
// socketMaps contains all maps after they have been loaded into the kernel.
94
//
95
// It can be passed to loadSocketObjects or ebpf.CollectionSpec.LoadAndAssign.
96
type socketMaps struct {
97
}
98

99
func (m *socketMaps) Close() error {
100
	return _SocketClose()
101
}
102

103
// socketPrograms contains all programs after they have been loaded into the kernel.
104
//
105
// It can be passed to loadSocketObjects or ebpf.CollectionSpec.LoadAndAssign.
106
type socketPrograms struct {
107
	IgSnapTcp *ebpf.Program `ebpf:"ig_snap_tcp"`
108
	IgSnapUdp *ebpf.Program `ebpf:"ig_snap_udp"`
109
}
110

111
func (p *socketPrograms) Close() error {
112
	return _SocketClose(
113
		p.IgSnapTcp,
114
		p.IgSnapUdp,
115
	)
116
}
117

118
func _SocketClose(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 socket_bpfel.o
130
var _SocketBytes []byte
131

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

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

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

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