inspektor-gadget

Форк
0
/
socketsiter_bpfel_x86.go 
141 строка · 3.4 Кб
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build 386 || amd64
3

4
package socketenricher
5

6
import (
7
	"bytes"
8
	_ "embed"
9
	"fmt"
10
	"io"
11

12
	"github.com/cilium/ebpf"
13
)
14

15
type socketsiterSocketsKey struct {
16
	Netns  uint32
17
	Family uint16
18
	Proto  uint16
19
	Port   uint16
20
	_      [2]byte
21
}
22

23
type socketsiterSocketsValue struct {
24
	Mntns             uint64
25
	PidTgid           uint64
26
	UidGid            uint64
27
	Task              [16]int8
28
	Sock              uint64
29
	DeletionTimestamp uint64
30
	Ipv6only          int8
31
	_                 [7]byte
32
}
33

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

42
	return spec, err
43
}
44

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

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

63
// socketsiterSpecs contains maps and programs before they are loaded into the kernel.
64
//
65
// It can be passed ebpf.CollectionSpec.Assign.
66
type socketsiterSpecs struct {
67
	socketsiterProgramSpecs
68
	socketsiterMapSpecs
69
}
70

71
// socketsiterSpecs contains programs before they are loaded into the kernel.
72
//
73
// It can be passed ebpf.CollectionSpec.Assign.
74
type socketsiterProgramSpecs struct {
75
	IgSkCleanup *ebpf.ProgramSpec `ebpf:"ig_sk_cleanup"`
76
	IgSocketsIt *ebpf.ProgramSpec `ebpf:"ig_sockets_it"`
77
}
78

79
// socketsiterMapSpecs contains maps before they are loaded into the kernel.
80
//
81
// It can be passed ebpf.CollectionSpec.Assign.
82
type socketsiterMapSpecs struct {
83
	GadgetSockets *ebpf.MapSpec `ebpf:"gadget_sockets"`
84
}
85

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

94
func (o *socketsiterObjects) Close() error {
95
	return _SocketsiterClose(
96
		&o.socketsiterPrograms,
97
		&o.socketsiterMaps,
98
	)
99
}
100

101
// socketsiterMaps contains all maps after they have been loaded into the kernel.
102
//
103
// It can be passed to loadSocketsiterObjects or ebpf.CollectionSpec.LoadAndAssign.
104
type socketsiterMaps struct {
105
	GadgetSockets *ebpf.Map `ebpf:"gadget_sockets"`
106
}
107

108
func (m *socketsiterMaps) Close() error {
109
	return _SocketsiterClose(
110
		m.GadgetSockets,
111
	)
112
}
113

114
// socketsiterPrograms contains all programs after they have been loaded into the kernel.
115
//
116
// It can be passed to loadSocketsiterObjects or ebpf.CollectionSpec.LoadAndAssign.
117
type socketsiterPrograms struct {
118
	IgSkCleanup *ebpf.Program `ebpf:"ig_sk_cleanup"`
119
	IgSocketsIt *ebpf.Program `ebpf:"ig_sockets_it"`
120
}
121

122
func (p *socketsiterPrograms) Close() error {
123
	return _SocketsiterClose(
124
		p.IgSkCleanup,
125
		p.IgSocketsIt,
126
	)
127
}
128

129
func _SocketsiterClose(closers ...io.Closer) error {
130
	for _, closer := range closers {
131
		if err := closer.Close(); err != nil {
132
			return err
133
		}
134
	}
135
	return nil
136
}
137

138
// Do not access this directly.
139
//
140
//go:embed socketsiter_bpfel_x86.o
141
var _SocketsiterBytes []byte
142

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

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

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

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